Difference Between Retesting and Regression Testing


Retesting is a process to check specific test cases that are found with bug/s in the final execution. Generally, testers find these bugs while testing the software application and assign it to the developers to fix it. Then the developers fix the bug/s and assign it back to the testers for verification. This continuous process is called Retesting.

What is Regression Testing?

Regression Testing is a type of software testing executed to check whether a code change has not unfavorably disturbed current features & functions of an Application

Re-testing Vs Regression Testing is a common FAQ amongst QA aspirants.


  • Regression testing is performed for passed test cases while Retesting is done only for failed test cases.
  • Regression testing checks for unexpected side-effects while Re-testing makes sure that the original fault has been corrected.
  • Regression Testing doesn’t include defect verification whereas Re-testing includes defect verification.
  • Regression testing is known as generic testing whereas Re-testing is planned testing.
  • Regression Testing is possible with the use of automation whereas Re-testing is not possible with automation.

Below is a detailed comparison with Example

Retesting vs Regression Testing

Regression Testing Re-testing
  • Regression Testing is carried out to confirm whether a recent program or code change has not adversely affected existing features
  • Re-testing is carried out to confirm the test cases that failed in the final execution are passing after the defects are fixed
  • The purpose of Regression Testing is that new code changes should not have any side effects to existing functionalities
  • Re-testing is done on the basis of the Defect fixes
  • Defect verification is not the part of Regression Testing
  • Defect verification is the part of re-testing
  • Based on the project and availability of resources, Regression Testing can be carried out parallel with Re-testing
  • Priority of re-testing is higher than regression testing, so it is carried out before regression testing
  • You can do automation for regression testing, Manual Testing could be expensive and time-consuming
  • You cannot automate the test cases for Retesting
  • Regression testing is known as a generic testing
  • Re-testing is a planned testing
  • Regression testing is done for passed test cases
  • Retesting is done only for failed test cases
  • Regression testing checks for unexpected side-effects
  • Re-testing makes sure that the original fault has been corrected
  • Regression testing is only done when there is any modification or changes become mandatory in an existing project
  • Re-testing executes a defect with the same data and the same environment with different inputs with a new build
  • Test cases for regression testing can be obtained from the functional specification, user tutorials and manuals, and defect reports in regards to corrected problems
  • Test cases for retesting cannot be obtained before start testing.