Difference Between Retesting and Regression Testing
Learn via video courses
Overview
One of the favourite interview questions of all time is about the difference between Retesting and Regression Testing. Even though these terms sound similar, they have entirely different meanings. If interpreted wrong, then it could change the entire context. Retesting is testing the application and modules repeatedly to find errors, whereas Regression Testing tests that new changes have not affected the existing unchanged code.
Scope
This article will discuss the terms regression testing and retesting with examples. We will also come to know the difference between retesting and regression testing. Both these terms are used heavily in day-to-day terminology in the testing environment. Regression testing is part of the STLC process and Retesting is part of the defect life cycle.
What is Regression Testing?
Regression testing ensures new code changes have not affected the unchanged code. It has a specific meaning attached because some functionalities have been added and are working fine. Still, their integration with the rest of the application should work perfectly.
For instance, on a website to log in, there was a feature to allow login from Gmail, Facebook, and basic authentication. After a few months, the organization decided not to allow Facebook login. So, developers remove the functionality to log in via Facebook. Now Regression testing here means that wherever the login data has been used is still working fine.
What is Retesting?
Retesting an application means that the application has been tested before. If bugs were found, they were fixed as well. Retesting is done to find more bugs and deeper levels of module testing. The first level of testing is always done to ensure basic functional requirements are working fine. An application is retested to ensure quality by making sure modules are defect-free.
Example: The login module has been tested, and bugs have been fixed. Retesting the application to ensure that now the application is bug-free because, in the first round of testing, bugs were found.
Regression testing vs. Retesting
Let us look at the difference between retesting and regression testing.
Regression Testing | Retesting |
---|---|
Regression testing is a type of testing done to ensure the changed code has not affected the existing code. | Retesting of an application is done to validate if the bugs have been fixed. |
Regression testing can only be done when there is a requirement change, or some functionalities are getting added. | Retesting is done to close the opened bugs. |
Regression testing is done for the passed test cases. | Retesting is done for the failed test cases. |
Regression testing is part of the Software testing life cycle. | Retesting is part of the bug/defect life cycle. |
Regression testing doesn't test the changed code. | Retesting is done only on the code which was broken. |
Conclusion
- Regression testing is done to validate if the changed code has not affected the previous working code.
- Retesting is done to ensure the bugs found have been fixed.
- Regression testing is part of integration testing in the software testing life cycle.
- Retesting is done to close the opened bugs, which the developer has now fixed.
- The terms Regression testing and Retesting must not be used interchangeably. They have a different context to them. In this article, we discussed the difference between retesting and regression testing.