Regression Testing and Retesting sound very similar, but they are two different terms used in different situations in Software Testing.
Regression Testing and retesting meaning
What is Regression Testing?
Regression Testing is a type of software testing used to check the change of code/defect fix does not impact the originally working functionality of the application. The regression test cycle consists of a set of test cases that verifies the new functionality of the application as well as the existing functionality to make sure that the changes do not break the application. Regression is exhaustive in nature and hence automation is preferred in many cases. It is always advisable to create an automated regression suite and run them as often as possible for each build/release.
For example, If a build 2.0 releases with a list of new functionalities in the release notes, then the tester will perform a regression testing on the basic functionality of the application to ensure the new functionality does not impact the existing functionality. The tester also checks the new code changes with a list of new test cases.
When is Regression Performed?
In general, the testing team performs regression testing in the following circumstances:
- When the developer implements a new feature or a new requirement to the existing functionality.
- When the development team changes the code to fix the defects.
- Change of requirements
- A new patch fix to the code
- Application configuration changes
- Performance issue fixes
In the case of agile projects, the tester should run a regression suite for each sprint.
What is Re-Testing?
Re-Testing is a type of software testing used to execute the previously failed test cases in the new environment to check the defect-fix. When a defect fix occurs, the tester executes the corresponding test cases and re-tests the defect to ensure the functionality is working as expected.
For example, If a build 2.0 releases with a list of fixed defects in the release notes, then the tester will re-test all these fixed defects and executes the related test cases which failed in the previous build to confirm the defect fix.
Difference between Regression Testing and Re-Testing:
Here we list out a few differences between these two confusing terms in software testing.
|Regression Testing||Re Testing|
|Ensures a change of code in the software does not affect the working functionality||Checks if a previously failed test passes in the new build after defect fix|
|Performed for passed test cases||Performed for failed test cases|
|Happens after/in parallel with Retesting||Happens before Regression Testing|
|Checks for unexpected side-effects||Checks for defect-fix|
|Automation is possible||Automation is not possible|
|Defect verification is not a part of the Regression Testing||Defect verification is a part of ReTesting|
Regression Testings help to improve the overall quality of a product and ensures the user experience. Many automation tools like Katalon Studio, Watir, Selenium etc., are available in the market and they provide the best automation solution to your regression suits. Performing and expanding the regression test suit for each build helps to identify and eliminate the defects in the early stage. Re-testing, which runs before the regression ( sometimes in parallel with Regression) helps to verify the previous defect does not occur in the new build, thereby ensuring a defect-free application.