Introduction
Regression Testing and Retesting are two important activities performed after defect fixes or code changes. Although they are related, their objectives and scope are different.
What is Regression Testing?
Regression Testing is performed to ensure that new code changes or bug fixes have not affected existing functionalities. It verifies overall system stability.
- Performed after changes in code
- Covers impacted and related areas
- Ensures system stability
- Often automated
What is Retesting?
Retesting is performed to verify that a specific defect has been fixed correctly. It focuses only on the previously failed test case.
- Performed after bug fix
- Focused on specific defect
- Confirms defect resolution
- Usually manual
Regression Testing vs Retesting – Comparison Table
| Criteria | Regression Testing | Retesting |
|---|---|---|
| Purpose | Check impact of code changes | Verify defect fix |
| Scope | Broad | Narrow |
| Test Cases Used | Existing regression suite | Failed test cases only |
| Focus | System stability | Specific issue verification |
| Automation | Often automated | Mostly manual |
Real-Time Example
Example: Banking Application
- Retesting: Verify fund transfer issue after bug fix.
- Regression Testing: Check login, account summary and transaction history after fix.
Advantages
Regression Testing:
- Prevents side-effect defects
- Improves release confidence
Retesting:
- Confirms bug resolution
- Ensures quality fix
Interview Questions
Difference between Regression Testing and Retesting?
Regression testing checks overall system stability after changes, while retesting verifies a specific defect fix.
Is Retesting part of Regression Testing?
Retesting is performed before regression testing.
Which is performed first?
Retesting is performed first, followed by regression testing.
Frequently Asked Questions
Can regression testing be automated?
Yes, regression test cases are commonly automated.
Is retesting always manual?
Mostly yes, but it can be automated if scripts exist.