Software testing plays a crucial role in the software development life cycle. There are various levels of software testing, and levels are associated with the different phases of the software development life cycle. These are broadly classified into Unit Test, Integration Test, System Test, and Regression Test.
- Unit Testing is performed at the unit or component or module level independently by the module developer.
- Integration Testing is performed by the quality assurance (QA)/ developer team. The QA team receives individual modules from the developer of modules after completion of the unit test. These modules are integrated with steps according to an integration plan. It evaluates a group of functions or classes to identify interface compatibility, unexpected parameter values or state interactions, and run-time exceptions. Even a partially integrated system is tested at each integration step by the QA team.
System Testing is performed on the system as a whole by the quality assurance (QA) team. - Acceptance Testing: Before delivery, the user or customer of that software or product performs acceptance testing by referring test document, which was prepared, by referring to requirement documents.
- Regression Testing is done while maintenance and fixes bugs at that time.
Short and crisp definitions
- Unit Test: Is my single module or unit working correctly??
- Integration Test: Are my separate modules or units working correctly when they are put together??
- System Test: Are the developed system or software, or product working correctly??
- Acceptance Test: Are the developed system or software, or products meeting our specified requirements???
- Regression Test: Are the software or product functionalities running properly after the bug fixed?
Example of Regression testing
Suppose a software or product was received from the vendor after the acceptance test and, maintenance engineers started using it for the purpose it was developed. Later, they encountered a bug and asked the developer team to fix it. Further, bugs were fixed and received back. Now, maintenance engineers need to re-run all the test cases to ensure that system or product, or software is working as per specification.
References
- Fundamentals of Software Engineering Book by Rajib Mall and NPTEL video series.
81 total views, 1 views today