Regression testing is a type of testing which is carried out to ensure that changes made in the fixes or any enhancement changes are not impacting the previously working functionality. It need to be is executed after enhancement or defect fixes in the software or its environment.

Whenever the defect fixes are done, a set of test cases that need to be run to verify the defect fixesare selected by the test team. After this an impact analysis is done in order to find out what areas may get impacted due to those defect fixes. Now on the basis of this impact analysis, some more test cases are selected to take care of the impacted areas.

Types of Regression Testing

Generally there are two types of regression testing:

1. Regular Regression Testing.

A Regular Regression testing is done between test cycles to ensure that the defect fixes that are done and the functionality thatwere working with the earlier test cycle continues to work.

2. Final Regression Testing

A “final regression testing” is performed to validate the build that hasn’t changed for a period of time. This build is deployed or shipped to customers.

When to do Regression Testing ?

Whenever changes happen to software, regression testing is done to ensure that these do not adversely affect the existing functionality. A regular regression testing can use multiple builds for the test cases to be executed. However, an unchanged build is highly recommended for final regression testing. Sometime the there is a possibility that test cases that failed due to the defects should be included for future regression testing.

Generallya regression testing is performed in following situations.

1. Change is in requirements and code is modified according to the requirement.

2. Defect fixing.

3.New feature is added to the software.

Regression Testing Process Steps

A test methodology for an effective regression testing generally includes following steps

1. Performing an initial “Smoke” or “Sanity” test.

2. Understanding the criteria to select the test cases for Regression Testing.