This type of testing is performed to check that a recent code change has not affected existing features of the software application. Regression testing makes sure that the application works fine after new functionalities or bug fixes. Test cases are re-executed to make sure the software application is working as expected after recent changes in the code.
When are we required to perform Regression Testing?
- Whenever new functionality is added in the application, we are required to perform this testing. For example, You need to login to the application by using the email id or phone number. But now you have added a new functionality through which user can also log in by using twitter, Facebook or Gmail.
- There are some changes in the requirements.
- There is a change in the environment of the application.
- If there is some changes or improvements done with the performance, you are required to perform this testing.
- Whenever a defect is fixed, you need to perform this testing again.
In simple words, whenever there is some changes or modifications done to the software application, you need to perform regression testing. The code changes should not affect the existing functionality of the code.
How to perform Regression Testing?
- Debug the code to identify the bugs.
- Fix the bugs.
- Now perform regression testing by selecting the test cases which covers both modified and affected parts of the code.
It can be performed by using the following techniques:
- Retest All
- Regression Test Selection
- Prioritization of Test Cases
- Retest All: In this technique, we will re-run all the test cases for the software application. If a test case fails, then we will report, and once the bug gets fixed, we will again re-run the test cases. This testing technique is expensive and requires a lot of time as we need to run all test cases again and again.
- Regression Test Selection: In this technique, some test cases from the test suite are executed to check that the modified code affects the software application or not. The test cases are divided into two parts:-
- Reusable Test Cases:- These test cases can be used in further regression cycles.
- Obsolete Test Cases:- These test cases can not be used in further regression cycles.
- Prioritization of Test Cases: In this technique, We prioritize the test cases based on business impact, critical functionalities. The test cases with high priority are executed first, and then test cases with medium and low priority are executed.
How to select the Test cases for Regression Testing?
- The test cases which have frequent defects.
- The test cases which verifies the core functionalities of the software application.
- Functionalities which are more visible to real-time users.
- Integration Test Cases.
- Complex Test Cases.
- Test cases which have failed recently.
- Successful test cases.
Types of Regression Testing
- Unit Regression Testing(URT)
- Regional Regression Testing(RRT)
- Full Regression Testing(FRT)
Regression Testing Tools
You can perform this testing by both manual testing and automation testing. As you know, manual test execution of test cases will increase time and cost. So you can also perform this testing by using some automation tools.
- Katalon Studio
- Quick Test Professional(QTP)
- Ranorex Studio
- Rational Function Tester(RFT)
- Regression Tester
We make sure that the defects which are founded in the previous builds are fixed, and now the current build is free from those defects. In this testing, we re-run the failed test cases.
When we find a bug in the software application, then it is assigned to the developer. The developer works on that bug, and after fixing the bug, it is again assigned to the tester. Now, tester only tests the failed functionality, or you can say that checks that the bugs has been fixed or not.
Let us suppose you are working on the Facebook Signup module. Once you fill all the details, when you try to click on the signup button, then it gives an error. The details are not saved, and as a result of this, you are unable to signup.
Now the Tester marks it as a Bug and assigns this Bug to Developer. The developer starts working on this Bug, and once the Bug gets fixed, It is assigned to Tester.
Now Tester only checks that the signup button is working or not. Tester doesn’t check the full module. This is known as Retesting.
When we perform Retesting?
- When the development team releases the new build, Retesting is performed to check that the existing bugs have been fixed or not.
- Sometimes developer rejects a bug and mentions the status as Not Reproducible. Now the tester tests the issue again and lets the developer know that the issue is valid and testable.
- If clients ask you to test the application, again and again, you are required to perform Retesting.
Difference Between Regression Testing and Retesting
|It ensures that the code change doesn’t affect the existing functionality.||It works on Defect fixes.|
|This is a Generic Testing.||This is Planned Testing.|
|This type of testing is performed for passed test cases.||This type of testing is performed for failed test cases.|
|Automation Testing can be performed.||You can not perform automation testing.|
|It doesn’t include defect verification.||It includes defect verification.|
|Checks for unexpected side effects.||Makes sure that the original fault is fixed.|
|In this testing, we confirm that the new change in the code is not affecting the existing functionality of the software application.||In this testing, we confirm that the failed test cases which are failed in the final execution are now passed after the bugs have been fixed.|
|Depending on the project and resources, It can be performed with Retesting.||It is done before regression testing.|
As a software tester, you should know how to write test cases. If you want to learn how to write the test cases, do read our articles on How to write test cases for Pen. You can also read our post of top 10 TCS interview questions for software testing.