What is Regression Testing?
Regression Testing is defined as the testing a code change in the application should not affect / impact the existing functionality of the application. Whenever you deploy the new code to the application then the new code may involve risk, dependency, defects etc. To reduce this risk, we need to do regression test before deploying the code to production.
You may ask do we need to perform Regression test every day?
Let’s discuss when we can perform Regression test.
- New Code added to the existing code to add new Feature / Functionality.
- Patch Fixes added to the core functionality
- Configuration Change
- Optimization of the source code to improve performance etc.
Life cycle of Regression Test:
Importance of Regression Testing:
Automation Testing is a crucial part of software development cycle. Similarly, This is an important part of SDLC in which detects bugs / issue early in the deployment cycle. So that business can save cost and effort to resolved issue in production.
Sometimes a little change in application may affect the core functionality which may cost high if this would identified in production. So, doing regression repeatedly before deploying the changes to production help teams to find early bugs.
We know that Selenium can be used to perform both Functional and Regression. Functional testing only inspects the current change to application whereas regression testing inspect both the current change and earlier changes. This ensure that current changes to application should not impact negatively to the earlier implementation. Below diagram explain the process of regression perfectly.
Re-Testing Vs Regression Testing:
As we came to know from previous section that Regression Testing is the testing a code change in the application should not affect / impact the existing functionality of the application.
So, what is “Re-testing” ? How it is differed from Regression ?
From the name both Re-testing and Regression Testing sounds similar. But in real scenario both are totally different to each other. Let’s understand the difference between them.
Retesting is always performer before Regression test execution. Retesting is the testing type when you will retest the failed test case again. But Regression Testing is the test the earlier release / functionality to check whether the changes have any impact on the early implementation or not.
Retesting eliminates the functional bugs whereas Regression eliminates the side effects of the current change to the application.