Sobes.tech
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