Middle
How to select tests for regression testing?
sobes.tech AI
Answer from AI
When selecting tests for regression testing, I focus on the following criteria:
- Tests covering critical business processes: They verify the main functions that the system depends on.
- Tests covering areas with the most changes: They focus on parts of the system affected by recent modifications or enhancements.
- Tests covering areas with a high defect occurrence rate: They include scenarios where defects have been previously identified.
- Tests covering new functionalities: They verify the correctness of added features and their integration with the existing system.
- Tests covering module integration: They ensure that different parts of the system interact correctly.
- Tests covering the most complex and risky parts of the system: They target the most unstable areas where problems are likely to occur.
- Automated tests: Automated tests are an ideal choice for regression due to their speed and reliability.
For effective test selection, I also use:
- Analysis of changes in the codebase.
- Data on defect history and localization.
- Prioritization of functionalities involving product management.
- Results of previous regression test runs.
Depending on the scope of changes and available resources, I may choose a full set of regression tests or a subset (smoke, sanity). When selecting a subset, I prioritize tests that cover main and most risky scenarios.
An example folder structure for automated regression tests:
# tests/
# regression/
# critical_paths/
# test_login.py
# test_create_order.py
# new_features/
# test_new_payment_method.py
# bug_fixes/
# test_fixed_issue_123.py
# integration/
# test_order_payment_flow.py
# smoke/
# test_basic_ui_elements.py
# ... other test types