Regression Testing Playbook: What to Re-Test After Every Release
A risk-based playbook for deciding what to re-test after every release: smoke versus full regression, automate the stable, manually probe the changed, and capture regressions with before-and-after replay.
Every release re-test answers one question: did this change break something that used to work? ISTQB defines a regression as a degradation in the quality of a component or system due to a change, and the trap is that the broken code is usually nowhere near the diff. You fix a rounding bug in billing and the export-to-CSV button stops working three modules over.
The lazy answer is to run all 4,000 test cases on every commit. That does not scale, it does not pay back, and at volume it actively misleads you. This playbook gives you the decision instead of the list: what to re-test, what to skip, what to automate, and what to probe by hand — grounded in the numbers that make those calls non-negotiable.
What should you re-test after every release?
Re-test by risk in three buckets: the code that changed, the modules that depend on it, and your highest-value flows like checkout and auth regardless of whether they were touched. Gate the pipeline with a minutes-long smoke pass first. Run impact-selected regression on every release, and reserve the full suite for nightly runs.
Confirmation testing and regression testing are two passes, not one
ISTQB draws a hard line here, and conflating the two is how teams ship broken fixes. Confirmation testing re-runs the exact test cases that failed last time, to verify the corrective action worked. Regression testing then checks that the same change did not degrade previously-working behavior elsewhere. Confirmation is narrow and points at the bug you just fixed. Regression is broad and points at everything around it.
Skip confirmation and you ship a fix that never actually fixed anything. Skip regression and you repair one path while silently breaking three. A complete release re-test always runs both, in that order: confirm the fix, then regress the blast radius.
Smoke versus full regression: broad-and-shallow versus narrow-and-deep
A smoke test is broad and shallow. It touches the critical paths across the whole app to answer exactly one thing: is this build stable enough to bother testing further? It runs in minutes and it gates the pipeline. If smoke is red, you stop — no point running a three-hour suite against a build where login is down.
A full regression test is the inverse: narrow-but-deep across many features, verifying existing behavior still holds. It can take hours. The two are complementary, not interchangeable. Smoke catches a broken deploy before you waste a morning; regression catches the subtle behavior drift a smoke pass flies straight over.
Those two numbers are the whole argument for risk-based selection. Google's study across 5.5 million targets and 4 billion outcomes found that after filtering flaky targets, only about 1.23% of test executions actually caught a real breakage — most of a full run re-confirms things that were never at risk. Worse, roughly 84% of pass-to-fail transitions were flaky rather than genuine, so a red full suite is more often noise than signal. Run that on every commit and your team learns to ignore red, which is the exact opposite of what a test suite is for.
Automate the stable, manually probe the changed
This is the rule that falls directly out of the data. Mature, high-frequency, rarely-changing functionality is the perfect automation candidate: it pays back its maintenance cost on every run, and it is exactly the regression you never want to re-check by hand again. Let automation guard the rear.
The code that changed in this release is where exploratory, manual testing earns its keep, because that is where behavior is genuinely uncertain. A human notices the off-by-one, the weird empty state, the error toast that fires twice — things a scripted assertion written before the change never anticipated. Automating a brand-new, still-shifting feature just produces brittle tests you rewrite next sprint. Probe the frontier with humans; automate the settled ground behind them.
Why AI-assisted delivery makes this urgent
DORA's 2024 report estimates that every 25% increase in AI adoption is associated with a roughly 7.2% decrease in delivery stability and a 1.5% decrease in throughput — and it pins the mechanism on larger batch sizes, not the AI-generated code itself. Bigger changes, more blast radius. GitClear's 2025 analysis across 211 million changed lines reports rising code churn (lines reverted within two weeks) and more copy-pasted code, both leading indicators that more regressions are shipping. The response is not less AI; it is smaller batches plus disciplined, impact-selected regression on every release.
The copy-paste release re-test checklist
## 0. Gate — Smoke (target: < 5 min, blocks the deploy)
- [ ] App loads, no console fatals on home + dashboard
- [ ] Login / logout works (the path that, if broken, hides everything else)
- [ ] One revenue path completes end-to-end (e.g. add-to-cart -> checkout)
- [ ] Health check / status endpoint green
## 1. Confirmation (the bugs this release claims to fix)
- [ ] Re-run the exact failing case for every ticket marked Fixed
- [ ] Verify on the same data/state that originally reproduced it
## 2. Risk-based regression (run on THIS release)
- [ ] Bucket A — Changed code: every file/module in the diff
- [ ] Bucket B — Dependents: anything that imports or calls Bucket A
- [ ] Bucket C — Money paths: checkout, auth, billing, data export
(run even if untouched — highest blast radius)
- [ ] Pull cases via test-impact analysis / dependency map, not by hand
## 3. Manual exploratory (changed surface only)
- [ ] 20 min unscripted probing of new/changed UI and edge states
- [ ] Empty, max-length, and error inputs on changed forms
## 4. Deferred to nightly (do NOT block release)
- [ ] Full regression suite
- [ ] Cross-browser / cross-device matrix on stable areas
## 5. Hygiene
- [ ] Quarantine any test that flaked; do not re-run-until-green
- [ ] File a de-flake ticket for each quarantined testWhere BugMojo fits: capture the regression once, replay it forever
A regression has something most bugs do not: a known-good baseline. That makes before-and-after the single most useful artifact for finding the change that introduced it. BugMojo's browser extension records rrweb session replay, console logs, network requests, and screenshots at the moment something breaks — so you capture the broken flow as state, not as a one-line stack trace. Put the working replay next to the broken one and bisecting to the offending commit becomes a comparison instead of a guess.
The Model Context Protocol server then hands that captured context to AI coding agents like Claude Code and Cursor, so the agent reads the failing session, console, and network state directly and locates the breaking change instead of working from a vague repro. To be clear about the boundary: BugMojo does not run or schedule your suite — your CI still owns selection and execution. BugMojo owns the evidence.
| Feature | Capability | Generic CI regression runner | BugMojo |
|---|---|---|---|
| Runs and schedules the regression suite | — | Yes — this is its core job | No — relies on your CI |
| Test impact analysis / which tests to select | — | Yes (with TIA plugins) | No |
| Before-and-after rrweb session replay of the broken flow | — | No — logs and stack traces only | Yes — working vs broken replay side by side |
| Captured console + network state at moment of failure | — | Partial — only if explicitly logged | Yes — auto-captured by the extension |
| MCP / AI-agent-readable bug context for Claude Code & Cursor | — | No | Yes — agent reads the failing session directly |
Frequently asked questions
Frequently asked questions
Sources
- ISTQB Certified Tester Foundation Level Syllabus v4.0.1 — confirmation testing vs. regression testing (Section 2.2.4); changes may cause unintended side effects elsewhere in the system — ISTQB (International Software Testing Qualifications Board) (2024-11)
- ISTQB Glossary — Regression: a degradation in the quality of a component or system due to a change — ISTQB (2025)
- ISTQB Glossary — Confirmation testing: testing that runs test cases that failed the last time they were run, to verify the success of corrective actions — ISTQB (2025)
- Announcing the 2024 DORA report — estimated 7.2% stability and 1.5% throughput decrease per 25% increase in AI adoption; batch size as the mechanism — Google Cloud / DORA (2024-10)
- Taming Google-Scale Continuous Testing — only 1.23% of test runs surface a real breakage; ~84% of pass-to-fail transitions are flaky (5.5M targets, 4B outcomes) — Google Research / IEEE ICSE-SEIP (2017)
- AI Copilot Code Quality: 2025 Research — code churn and copy/paste rising across 211M changed lines — GitClear (2025-02)
- What is the Model Context Protocol (MCP)? — open standard for connecting AI applications to external tools and data — Anthropic / modelcontextprotocol.io (2025)
Get bug-tracking insights, weekly.
Engineering deep-dives, QA playbooks, and honest tool comparisons. No spam — unsubscribe in one click.

