So today, we will learn about what regression testing.
What is Regression Testing?
Regression Testing means testing the existing functionality of an application after:
- new feature added
- bug fixed
- enhancement done
- configuration changed
to make sure old functionality is still working correctly. In simple words: “New changes should not break old working features,” and software works correctly.
Real Life Example
Imagine a shopping website.
Developer fixes:
- Login issue for email
After fix, tester checks:
- Login
- Signup
- Add to cart
- Payment
- Logout
Why?
So why need to test these features, as sometimes fixing one feature can accidentally affect other modules. That checking process is called Regression Testing.
Definition
It is a type of software testing that verifies whether previously developed and tested software still performs correctly after changes.
When is Regression Testing Done?
Regression testing is performed:
- After bug fixes
- After enhancement
- After new feature implementation
- After UI changes
- After code optimization
- After environment/configuration changes
- Before release
Types of Regression Testing
1. Corrective
No major code changes.
Existing test cases reused.
2. Selective
Only impacted modules are tested.
Example:
- Payment module changed
- Only payment-related flows tested
3. Complete
Entire application tested.
Used before major release.
4. Progressive
When requirements change and new test cases added.
Process
Step 1 — Identify Changes
Understand:
- what changed
- impacted modules
Step 2 — Select Test Cases
Choose:
- critical test cases
- impacted areas
- smoke/sanity cases
Step 3 — Prioritize Test Cases
High priority:
- Login
- Payment
- Security
- Main business flow
Step 4 — Execute Tests
Manual or automation.
Step 5 — Report Defects
Log bugs if failures found.
Advantages & Disadvantages
Tester executes test cases manually.
Advantages
- Easy for small projects
- Human observation better
Disadvantages
- Time consuming
- Repetitive
- Error-prone
Difference Between Retesting and Regression Testing
| Retesting | Regression Testing |
|---|---|
| Verifies fixed bug | Verifies old features still work |
| Focused testing | Broad testing |
| Done for failed cases | Done for impacted areas |
| Checks specific defect | Checks side effects |
Example in Real Project
Banking Application
Bug fixed:
- Money transfer failure
Regression testing includes:
- Login
- Account balance
- Fund transfer
- Transaction history
- Beneficiary management
Purpose:
Ensure fix did not impact other banking operations.
Challenge
- A large number of test cases
- Time consuming
- Frequent requirement changes
- Test maintenance
- Environment issues
Best Practices
It is always good and recommended to Automate repetitive regression suites. Which reduces time and increases the effectiveness of repetitive tests without putting manual efforts.
Easy Memory Trick
“Change happened → Check old functionality” = Regression Testing.