The Difference Between Regression Testing And Retesting

Many testing aspirants have difficulty in understanding the difference between regression testing and retesting. In this blog, we are going to look into the key difference between these two types of testing. Also, we are going to learn more about the relationship between regression testing and retesting.

So, let’s try to answer the question.

What is the difference between Regression Testing and Retesting?

Regression Testing is a type of software testing executed to ensure whether a code change/update/release/patch has not unfavourably disturbed current features & functions of an application.

Re-testing is a type of testing performed to check whether test cases that were unsuccessful in the final execution are successfully passed after the defects are repaired.

In the Regression Testing, the test cases are extracted from functional testing to ensure that no new defects are included due to the software update/change & to check whether original features and functionality are working as expected. Regression testing also ensures that no new defect is introduced to the system. Once the regression test suite is created, the test cases can be automated using automation tool but the same is not applicable for Re-testing.

Jumping into the detailed comparison

Regression Testing Re-Testing
Regression testing is to ensure that changes have not affected unchanged part. Retesting is done to make sure that the tests cases which failed in last execution are passed after the defects are fixed.
Regression testing is not carried out for specific defect fixes. Retesting is carried out based on the defect fixes.
In Regression testing, the test cases which passed earlier can be included to check the functionality which was working earlier. In Retesting, the cases which are failed earlier can be included to check if the functionality failure in an earlier build.
Regression test cases are derived from the functional specification, the user manuals, user tutorials, and defect reports in relation to corrected problems. Test cases for Retesting cannot be prepared before start testing. In Retesting, test cases that are failed in the prior execution are only re-executed.
Automation is the key for regression testing. Manual regression testing tends to get more expensive with each new release. Automation always complements the regression test process. Test cases for re-testing cannot be automated due to uncertainty
Defect verification doesn’t fall under Regression testing. Defect verification is coming under Retesting.
Based on the resource availability the Regression testing can be carried out in parallel with Retesting. Priority of Retesting over Regression testing is higher, so it is carried out before regression testing.

In regression testing, the defect logged by tester while testing the software application is fixed by the developer. In Retesting the same defect is checked to make sure whether the defect is fixed or not using steps to reproduce mentioned in the defect.

About the Author


Software Testing Research Expert
Find out more about @indiumsoft