What is the difference between Regression And Retesting

What is the difference between Regression And Retesting

Let’s see the difference between Regression and Retesting. This might be one of the top 5 software testing interview questions for freshers .

Most of the testers have confusion with Regression and Retesting.

Here in this post, we will showcase the difference between regression and retesting with practical examples to understand clearly.

Check the below video to see “Difference between Regression And Retesting”

Please be patient. The video will load in some time.

If you liked this video, then please subscribe to our YouTube Channel for more video tutorials.


Repeated testing of an already tested program, after modification, to discover any defects introduced or uncovered as a result of the changes in the software being tested or in another related or unrelated software components.

Usually, we do regression testing in the following cases:

  1. New functionalities are added to the application
  2. Change Requirement (In organizations, we call it as CR)
  3. Defect Fixing
  4. Performance Issue Fix
  5. Environment change (E.g.. Updating the DB from MySQL to Oracle)


To ensure that the defects which were found and posted in the earlier build were fixed or not in the current build.

Say, Build 1.0 was released. Test team found some defects (Defect Id 1.0.1, 1.0.2) and posted.

Build 1.1 was released, now testing the defects 1.0.1 and 1.0.2 in this build is retesting.

Example to showcase the difference between Regression and Retesting:

Let’s take two scenarios.

Case 1: Login Page – Login button not working (Bug)

Case 2: Login Page – Added “Stay signed in” checkbox (New feature)

In Case 1, Login button is not working, so tester reports a bug. Once the bug is fixed, testers test it to make sure whether the Login button is working as per the expected result.

Earlier I have posted a detailed post on “ Bug Report Template ”. If you haven’t gone through it, you can browse by clicking here. Also, you could download the Sample Bug Report Template / Defect Report Template  from here.

In Case 2, tester tests the new feature to ensure whether the new feature (Stay signed in) is working as intended.

Case 1 comes under Re-testing. Here tester retests the bug which was found in the earlier build by using the steps to reproduce which were mentioned in the bug report.

Also in the Case 1, tester tests other functionalities which are related to login button which we call as Regression Testing.

Case 2 comes under Regression Testing. Here tester tests the new feature (Stay signed in) and also tests the relevant functionalities. Testing the relevant functionalities while testing the new features come under Regression Testing.

Another Example:

Imagine, An Application Under Test has three modules namely Admin, Purchase and Finance. Finance module depends on Purchase module. If a tester found a bug on Purchase module and posted. Once the bug is fixed, the tester needs to do Retesting to verify whether the bug related to the Purchase is fixed or not and also tester needs to do Regression Testing to test the Finance module which depends on the Purchase module.

Some other Differences between Regression and Retesting:

Retesting done on failed test cases whereas Regression Testing done on passed test cases.

Retesting makes sure that the original defect has been corrected whereas Regression Testing makes sure that there are no unexpected side effects.

Retesting vs Regression Testing

Below is a detailed comparison with Example

Regression Testing is performed to make sure the code changes have not affected existing features. Re-testing is performed to make sure that the test cases which failed earlier are passed after the defects are fixed.
Regression testing is carried out to verify whether there is any existing features are affected or not on the basis of new code changes. Re-testing is carried out on the basis of the Defect fixes.
Defect verification won’t fall under regression testing. Defect verification falls under retesting.
Priority of regression testing is lower than retesting. Regression testing is carried out in parallel with retesting. Priority of retesting is higher than regression testing. Retesting is carried out before Regression testing.
We can automate regression test cases. Manual regression testing is more expensive and time consuming. We cannot automate the test cases for Retesting due to uncertainty.
Regression testing is a generic testing. Re-testing is a planned testing.
We do regression testing on passed test cases. We do retesting only on failed test cases.
Regression testing verifies unexpected side effects. Re-testing verifies whether original defects has been fixed or not.
Regression test cases are derived from the functional specification. Test cases that are failed earlier are used in retesting.

Related posts:

  • What is Retesting? When We Do Retesting in Software Development?
  • Regression Testing | How To Perform, Types, Techniques, Tools
  • Best Regression Testing Tools in 2020 | Software Testing Material
  • Do We Really Write Test Cases For All Testing Types
  • Automation Testing Tutorial | Software Testing Material