What is Regression Testing?
Regression testing is the retesting of a software system to confirm that changes made to a few parts of the codes have not any side effects on existing system functionalities. It is to ensure that old codes are still working as they were before the introduction of the new change. The ideal process would be to create an extensive test suite and run it after each and every change.
ISTQB Definition : Regression testing is a type of software testing that intends to ensure that changes (enhancements or defect fixes) to the software have not adversely affected it.
Point to Notes
- The purpose of regression testing is to ensure that changes like enhancements, patches and configuration changes have not introduced new faults.
- One of the main reasons for regression testing is to determine whether a change in one part of the software has any negative effect on other parts of the software.
- It is like a verification method and can be performed during all phases of testing like Unit, Integration, System, or Acceptance Testing. But when the code is being checked for compliance with an integrated system as a whole, regression testing proves most beneficial.
- Regression tests are mostly automated because in order to fix the defect the same test is carried out again and again and it will be very tedious to do it manually .
When to perform Regression Testing?
- Any new feature or new functionality is added to the product.
- Any enhancement is done to previous functionality.
- Any defect is fixed.
How to select Test for Regression Test Suite?
- Include the test cases which have frequent or recent defects.
- Include the test cases which verify core features of the product.
- Include the test cases for Functionalities which have undergone more and recent changes.
- Include a set Integration test cases which touch all the major component.
- Include all Complex Test Cases.
- Include P1 & P2 test cases for regression testing.
Steps to take in Regression Testing:
- Prepare a Regression Test Suite by following the above techniques of "How to select Test for Regression Test Suite"
- Automate the Regression Suite using the choice of Automation Tool.
- Manage Regression Suite and update it when required.
- Execute Regression Suite on the above events of above "When to perform Regression Testing?".
- Analyze the test execution report.
*In fact, Integrate with the builds and schedule the Execution on every new build deployed.