Chapter 11: Difference between Regression and Retesting

Let’s understand the difference between Regression and Retesting. This might be one of the top 5 interview questions for freshers. Most of the testers have confusion with Regression and Retesting. In this chapter, we will see the difference between regression and retesting with practical example to understand clearly.


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 .

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 show 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 “Keep 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.

In Case 2, tester tests the new feature to ensure whether the new feature (keep 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 (keep 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.