Learn

Regression testing: what it is and how to scope it

Regression testing re-runs existing test cases to confirm a change has not broken previously-working behaviour. The hard part is scoping it without re-running everything every release.

2 min read

01What regression catches

When you ship a change — a refactor, a new feature, a dependency upgrade — something previously working might break unexpectedly. Regression testing re-runs the test cases most likely to expose that.

Common triggers:

  • Pre-release before a major version
  • After a refactor or significant dependency upgrade
  • After an infrastructure change
  • When a defect fix touches shared code

02Scoping a regression run

A useful scoping rubric:

  1. All P0 (critical-path) cases — every release.
  2. High-priority cases in areas touched by recent changes — change-impact-driven.
  3. Cases that recently failed — confirm the fix held.
  4. A rotating sample of medium-priority cases — to keep the long tail covered without retesting everything.

03Manual vs automated regression

If you have automation, it should carry the bulk of regression — that's its strongest use case. Manual regression covers what automation can't (or won't) cover: visual checks, integrations, mobile-on-real-devices, accessibility.

04Related

05Frequently asked questions

Do I have to re-run every test on every release?
No. A full regression suite on every release is impractical for most teams. Risk-based regression — focusing on high-priority cases plus areas touched by recent changes — is the usual compromise.
How is regression different from smoke testing?
Smoke testing is a tiny subset that confirms basic functionality works at all. Regression is broader, designed to catch unintended breakage in previously-working features. See smoke vs sanity testing.

Try it on the free plan

5 users, 2 projects, 200 active test cases, 1 GB. No credit card.