Difference Between Retesting and Regression Testing
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.
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.
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.
Difference Between Retesting and Regression Testing
Let us look at the difference between retesting and regression testing.
Retesting | Regression Testing |
---|---|
Retesting is also known as planned testing.. | Regression testing is also known as generic testing.. |
Retesting of an application is done to validate if the bugs have been fixed. | Regression testing is a type of testing done to ensure the changed code has not affected the existing code. |
Retesting has higher priority than regression testing. | Regression Testing has lower priority than retesting. |
Retesting is done to close the opened bugs. | Regression testing can only be done when there is a requirement change, or some functionalities are getting added. |
Retesting is done for the failed test cases. | Regression testing is done for the passed test cases. |
During retesting test cases can’t be automated. | During regression testing test cases can be automated. |
Test cases are not obtained beforehand but only after the start of testing. | Test cases are obtained from the document specification and bug reports. |
Retesting is part of the bug/defect life cycle. | Regression testing is part of the Software testing life cycle. |
Retesting is done only on the code which was broken. | Regression testing doesn't test the changed code. |
Priority of retesting is higher than regression testing, so it is carried out before regression testing. | Based on the project and availability of resources, Regression Testing can be carried out parallel with Retesting. |
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.