The purpose of regression testing is to confirm that a recent program or code change has not adversely affected existing features.
Regression retesting ensure the unchanged parts of the application. Test cases are re-executed in order to check whether the previous functionality of the application is working fine and new changes have not introduced any new bugs. This test can be performed on a new build when there is the significant change in original functionality or even a single bug fix.
Why Regression Testing?
Regression testing is initiated when programmer fixes any bug or add new code for new functionality to the system. There can be many dependencies in newly added and existing functionality. It is a quality measure to check that new code complies with old code and the unmodified code is not getting affected. Most of the time testing team has a task to check the last minute changes in the system. In such situation testing only affected application area in necessary to complete the testing process in time with covering all major system aspects.
This test is very important when there is continuous change/improvements added in the application. The new functionality should not negatively affect the existing tested code.
Types of Regression testing techniques
We have four types of regression testing techniques. They are as follows:
- Corrective Regression Testing: Corrective regression testing can be used when there is no change in the specifications and test cases can be reused.
- Progressive Regression Testing: Progressive regression testing is used when the modifications are done in the specifications and new test cases are designed.
- Retest-All Strategy: The retest-all strategy is very tedious and time-consuming because here we reuse all test which results in the execution of unnecessary test cases. When any small modification or change is done to the application then this strategy is not useful.
- Selective Strategy: In selective strategy, we use a subset of the existing test cases to cut down the retesting effort and cost. If any changes are done to the program entities, e.g. functions, variables etc., then a test unit must be rerun. Here the difficult part is to find out the dependencies between a test case and the program entities it covers.
Select test cases for Regression Testing
Effective Regression Tests can be done by selecting following test cases :
Test cases which fail frequently.
Functionalities which are critical to the users
Test cases which verify core features of the product.
Test cases of Functionalities which has undergone more and recent changes.
Integration Test Cases.
Boundary value test cases.