Regression Testing

What is regression testing?

Regression testing is repeated testing done on a recently modified program or code. It is done to confirm that existing features have not been affected due to the change(s). 

In short, it focuses on re-executing tests to discover new defects and ensure that all previously working functionalities work just fine. Re-testing is a natural aspect of the software development life cycle as issue fixing sometimes requires the deletion or correction of existing features.

This type of testing is performed at all test levels and can include functional, non-functional, and structural testing. Since test suites are run many times, regression testing works well with automation testing.

Why is regression testing important?

A rapid regression testing process will help product teams receive more in-depth feedback and respond quickly to it. Regression testing detects new bugs early in the deployment cycle, saving businesses time and money on maintenance. There are times when a seemingly minor modification can have a domino effect on the core functionality of a product.

Types of Regression Testing

A unit regression test is conducted during unit testing and codes are tested in isolation, meaning any dependencies on the unit to be tested are blocked so that the unit can be tested independently without any discrepancies.

A partial regression is carried out in order to ensure that the code works as expected event after a change has been made to the code and the unit integrated with the existing or unchanged code. 

Complete regression is required when several modules are changed simultaneously or if the impact of a change in one module affects others. The product as a whole is regressed to check for any changes because of the changed code.