Types of Regression Testing
Regression testing ensures that recent code changes do not break existing functionality. Here are the different types of regression testing:
1. Corrective Regression Testing
- Used when no changes are made to the existing software but tests are re-executed to verify that everything still works as expected.
- Example: Running the same test cases after a routine code refactor.
2. Progressive Regression Testing
- Applied when new features are added, and existing test cases are modified or extended to accommodate the changes.
- Example: Adding a new payment method to an e-commerce site and testing how it integrates with existing checkout flows.
3. Selective Regression Testing
- Instead of re-executing all test cases, only a subset of tests (based on impact analysis) is run to check critical functionalities.
- Example: Running tests only for modules affected by a recent API change.
4. Complete Regression Testing (Full Regression)
- Conducted when a major code update, version release, or significant changes have been made.
- All test cases in the test suite are executed to verify overall system stability.
- Example: After a major version upgrade of an ERP system, running all functional tests.
5. Partial Regression Testing
- Performed when changes are made in a specific module, but only the related test cases and the dependent areas are tested.
- Example: Updating the cart module in an e-commerce app and testing its impact on checkout and order placement.
6. Unit Regression Testing
- Focuses on testing only the modified code unit in isolation, without considering dependencies.
- Typically done during unit testing by developers.
- Example: Changing a discount calculation function and testing it independently before integrating it with the full application.
7. Smoke Regression Testing
- A quick, high-level test to ensure that basic functionalities still work after changes.
- Often automated and run as part of CI/CD pipelines.
- Example: Running essential login, navigation, and data entry tests after deploying a new build.
8. Sanity Regression Testing
- A focused subset of regression tests that verify whether newly added features work without breaking existing functionalities.
- Example: After fixing a checkout bug, running a limited set of tests to confirm payments still process correctly.