Quite simply, it is the process where you’re making sure that the system meets the customer expectations without any errors.
Through this process, you are going through any mistakes that exist in this system before receiving it to the customer, because if you hand it over to the client and it is full of mistakes, you will lose money, reputation, and everything else, except that the system that you are tired of, many people will not use it , you make sure that the system is not full of errors, so you have to do all kinds of tests.
Why Software Testing Important ?
According to International Software Testing Qualification Board (ISTQB) , they mentioned that rigorous testing of components and systems, and their associated documentation, can help reduce the risk of failures occurring during operation. When defects are detected, and subsequently fixed, this contributes to the quality of the components or systems. In addition, software testing may also be required to meet contractual or legal requirements or industry-specific standards.
There’re many Testing types can be performed on the same project which are :
- Functional Testing which is focus on evaluating functions that the system should perform.
- Non Functional Testing which is focus on evaluating characteristics of systems and software such as usability, performance efficiency or security.
- White Box Testing which is focus on the system’s internal structure or implementation. Internal structure may include code, architecture, work flows, and/or data flows within the system.
- Change Related Testing which is focus on confirming that the changes have corrected the defect or implemented the functionality correctly, and have not caused any unforeseen adverse consequences.
Like building a Software , Testing has levels which performed step by step once building the Software begins :
- Component Testing (also known as unit or module testing) focuses on components that separately testable like “Login” or “Sign Up” modules in websites.
- Integration Testing focuses in interactions between modules like if you logged in with your account you’ll find only your data & profile.
- System Testing focuses on the behavior and capabilities of the whole system considering the end to end tasks the system can perform like if you registered into ecommerce website them logged in to search for any product you like then added it to your cart then buy it through your credit card.
- User Acceptance Testing focus on the the behavior and capabilities of the whole system that will establish a confidence that the system is working as expected like the most critical scenarios in system like refunding an item through an ecommerce website & made sure that the performance is ok to handle many users.