Similar to software development, software testing is also a very vast field comprising of numerous testing techniques and activities. The task of testing is not just limited to identification and detection of bugs and defects in the software application but to also ensure that these identified bugs have been fixed and in the process of bug-fixation or any modification, no existing functionalities have been adversely affected.
"Regression Testing" and Retesting are two of the valuable testing methodologies to look after the above said aspects where former is used to ensure the veracity of the existing functionalities and the latter validates the removal or fixation of identified bug(s), still people often gets confused between these two term. Here, we are going to list some of the notable points of differences between "regression testing and retesting" to eliminate this confusion.
A form of software testing which verifies that a previously developed software product is free of bugs or errors and no existing functionalities have been affected after it has undergone a configuration change such as a patch, upgrade or interfaced with another application.
A software testing type which verifies and validates the rectification of flaws and issues which caused software application to fail a previous test.
|1. Regression testing intends to check that a configuration change to a software product, such as a defect rectification measure has not led to unintentional modifications in the unaffected part.||1. Retesting checks the fact that those test cases which a software product failed due to presence of bugs has passed them after the rectification of those flaws.|
|2. Regression testing doesn't cover defect verification.||2. Retesting covers defect verification.|
|3. This kind of testing can be pursued both manually as well as with the aid of automation tools.||3. Automation is not possible with retesting.|
|4. Regression test cases make use of user manuals, bug reports and functional specifications.||4. Retesting is only a rerun of all the tests that a software product initially fails on account of bugs and errors.|
|5. Regression testing is not carried out for the sole purpose of taking out defects from a whole product. It is a lot more focused on sweeping flaws across a pre determined area or specific module of a product deemed to be affected by an upgrade.||5. Retesting is carried out on the sole premise of re-executing a phase of testing for a rectified product.|
|6. Regression testing involves those "test cases" which the software product had passed earlier.||6. As opposed to regression testing retesting involves the execution of those test cases which the software product had failed to clear previously.|
|7. After a process of configuration change such as a patch or an upgrade, regression testing checks for all the functionalities which had been working perfectly earlier.||7. Retesting makes it possible for checking the efficacy of all those functionalities which had failed to clear an earlier phase of testing.|
|8. Regression testing can be carried out simultaneously with retesting. It is generally done after retesting.||8. Retesting is always carried out before regression testing.|
|9. All the unintentional flaws which appear as a side effect come out detected via regression testing.||9. Retesting makes sure that all the embryonic faults which were part of the application when it was first returned to the development team for rectification are detected if missed for correction.|
|10. It is only performed when there are mandatory modifications to be made into the software product.||11. Retesting is testing for defects in a software product within the same environment.|
|12. Regression testing is also known as Generic testing.||12. Whereas retesting is known as Planned testing.|