Difference between regression testing and retesting

Before we start with the differences between regression testing and retesting it’s good to have simple understanding of each topic. Basically, regression testing is carried out to ensure that the existing functionality is working fine and there are no side effects of any new change or enhancements done in the application. In other words, Regression Testing checks to see if new defects were introduced in previously existing functionality.

ISTQB Difference Between Regression Testing vs RetestingRetesting is carried out in software testing to ensure that a particular defect has been fixed and it’s the functionality working as expected. Below are few of the differences between Retesting and Regression Testing.

Regression testing Retesting
Regression testing is done to find out the issues which may get introduced because of any change or modification in the application. Retesting is done to confirm whether the failed test cases in the final execution are working fine or not after the issues have been fixed.
The purpose of regression testing is that any new change in the application should NOT introduce any new bug in existing functionality. The purpose of retesting is to ensure that the particular bug or issue is resolved and the functionality is working as expected.
Verification of bugs are not included in the regression testing. Verification of bugs are included in the retesting.
Regression testing can be done in parallel with retesting. Retesting is of high priority so it’s done before the regression testing.
For regression testing test cases can be automated. For retesting the test cases cannot be automated.
In case of regression testing the testing style is generic In case of retesting the testing is done in a planned way.
During regression testing even the passed test cases are executed. During retesting only failed test cases are re-executed.
Regression testing is carried out to check for unexpected side effects. Retesting is carried out to ensure that the original issue is working as expected.
Regression testing is done only when any new feature is implemented or any modification or enhancement has been done to the code. Retesting is executed in the same environment with same data but in new build.
Test cases of regression testing can be obtained from the specification documents and bug reports. Test cases of retesting can be obtained only when the testing starts.