Regression Testing
Learn how to verify that new changes haven't broken existing features. Master regression strategy, test selection, and when to automate.
What you'll learn
- Understand what regression testing is and why it is critical
- Select the right tests to run for each change
- Decide when to automate regression tests
- Plan a smoke vs full regression cycle
Manual QAlessonsJump to another lesson
Regression Testing
Imagine you fix a leaky sink in your apartment. Then you go to take a shower and… the shower is broken now.
That is exactly what happens in software. You fix one thing, and something totally unrelated breaks. Regression testing is how we catch that.
What is Regression Testing?
Why It Matters
Types of Regression Testing
- 1
Unit Regression
Re-run tests on the exact piece of code you changed. Fast and narrow.
- 2
Functional Regression
Re-test the feature that was changed to make sure it still behaves correctly end-to-end.
- 3
Visual Regression
Compare screenshots before and after the change to catch layout or style breaks.
- 4
Partial Regression
Re-test the changed feature plus a hand-picked set of related features.
- 5
Full Regression
Re-run every test in your entire suite. Safest, slowest, most expensive.
Smoke vs Regression
Smoke Test
- A quick sanity check
- Takes minutes, not hours
- Runs on every build
- Covers the most critical paths only
- Answers: 'Is this build worth testing?'
Regression Test
- A deep, thorough verification
- Takes hours or days
- Runs before a release
- Covers many features across the app
- Answers: 'Is this build safe to ship?'
VerdictSmoke tests are your first filter. Regression tests are your final guardrail.
Quick check
You just deployed a new build to staging. Which test should run FIRST?
Test Selection Strategies
You usually cannot run every test on every change. Pick wisely.
- Full Re-test:Run every test. Safest, slowest.
- Prioritized:Run tests ranked by business value.
- Risk-Based:Run tests where bugs are most likely.
When to Automate Regression
Not every test is worth automating. Use this map to decide.
Should you automate this regression test?
Run often, unstable feature
Automate carefully. Flaky tests hurt more than they help.
Run often, stable feature
Automate now. Biggest win.
Run rarely, unstable feature
Keep manual. Not worth the maintenance.
Run rarely, stable feature
Automate if cheap. Otherwise leave manual.
Common Traps
A Regression Cycle
Code Change
Developer commits a fix or feature.
Smoke Test
Quick check that the build works at all.
Regression Suite
Deep test of many features.
Sign-Off
QA approves — ready to release.
Practice: Put the Regression Steps in Order
Drag the steps into the correct order for a regression cycle.
- 1Run the full regression suite
- 2Developer commits a code change
- 3Run a quick smoke test on the new build
- 4QA signs off and the release ships