Differences between Regression Testing and Retesting
Differences between Regression Testing and Retesting
In software testing, it’s important to ensure that software behaves correctly after changes like bug fixes or new feature additions. Two commonly used testing methods for this purpose are Regression Testing and Retesting. Though they may sound similar, they serve different purposes and are performed differently. In this post, you will learn about Re-Testing and Regression testing. Mostly, the concepts stated on this page are from a manual testing standpoint.
Regression Testing
Regression Testing is performed to check whether recent code changes have affected the unchanged existing functionality of the application. It ensures that the old features still work as expected after updates. This type of testing is usually done by re-running previously executed test cases.
Regression is the re-execution of the test cases for unchanged parts to see whether the existing functionality is working fine are not. (This exercise is usually done as a cycle.) It is done to ensure that a change in one part of the software has no side effects on other parts of the application.
When a defect is reported, the Dev team will fix the defect. The change made in the code may likely lead to side effects that may not be visible immediately. So, whenever a change is made to the source code, the QA team has to ensure that there are no side effects of the change to other parts of the AUT.
Re-testing
Re-testing is done to verify whether a specific defect that was previously found has been fixed correctly. It focuses only on the failed test cases and checks whether the reported bug is resolved. Re-testing is carried out after the defect is fixed.
Retesting is done to make sure that the bug is fixed and the failed functionality is working fine or not, This is a kind of verification method followed in the software testing field for the fixed bugs. Re-testing is done to ensure that the bug is fixed by running the same test case repeatedly. It is run on the same code where the change has been made.
It does not involve testing of other parts of the software. Re-testing means we are testing only a specific part of an application again. We do not consider how it will affect the other parts of the whole application.
Regression Testing and Re-Testing
To summarize the differences in a table format:
Feature | Regression Testing | Re-Testing |
---|---|---|
Purpose | To ensure that new changes haven’t affected the existing functionality. | To verify that a specific defect has been fixed. |
Focus Area | The entire application or modules affected by the change. | Only the specific test cases that previously failed. |
Test Cases | Previously passed test cases are re-executed. | Previously failed test cases are re-executed. |
Automation | It can be automated easily. | Usually done manually. |
Priority | Lower priority compared to re-testing. | High priority as it verifies bug fixes. |
Dependency on Defect | Not dependent on defect fixes. | Always dependent on a specific defect fix. |