In this guide
A regression test asks: does everything that worked before still work after my change? You cannot retest the whole app each time, so keep a short list, and grow it from real bugs. A list of 15 checks you actually run beats a list of 150 you skip.
How the list grows
- Start with your top flows. The 5 to 8 things a user must be able to do (sign-up, main task, purchase, restore).
- Add every bug that escaped. When a bug reaches a user or a tester, add one line that would have caught it. That is the most valuable part of the list.
- Add fragile areas. Anything you changed three times or that depends on a third-party service.
- Prune. Remove checks for removed features and merge duplicates. Review the list at each release.
Template (copy and paste)
REGRESSION LIST: <app name> Last reviewed: <date>
Run before every release. Mark each: P (pass) / F (fail) / N (not run, say why)
CORE FLOWS
[ ] R-01 <flow>: <one-line check> Source: top flow
[ ] R-02 <flow>: <one-line check> Source: top flow
PAST BUGS
[ ] R-10 <what broke>: <the check that would catch it> Source: bug <link/ID>, <date>
[ ] R-11 <what broke>: <the check that would catch it> Source: bug <link/ID>, <date>
FRAGILE AREAS
[ ] R-20 <area>: <check> Source: <why fragile>
RELEASE RUN
Build: <version> Date: <date> Device / OS: <list>
Failed items: <IDs> Decision: <go / fix first>
Example (illustrative)
CORE FLOWS
[ ] R-01 Sign-up: create account with email, reach home screen Source: top flow
[ ] R-02 Main task: add an item, see it in the list Source: top flow
[ ] R-03 Restore: reinstall, log in, data is back Source: top flow
PAST BUGS
[ ] R-10 Crash on rotate in the edit screen: rotate while editing Source: bug #8
[ ] R-11 Double charge on double tap: tap Buy twice quickly Source: bug #14
FRAGILE AREAS
[ ] R-20 Login with a social account: log in and log out Source: depends on third-party sign-in
How to adapt it
- Keep each line runnable in a minute. If it needs a story, it belongs in a test case.
- Record the origin of every line. When you wonder whether to delete it, the source tells you.
- Before updates to a live app: add "update from the previous version keeps data". See how to test an update to a live app.
- Different from the smoke test: the smoke test asks "is this build usable at all?" and runs on every build; the regression list is deeper and runs before a release.
Related
- Hub: Mobile app testing checklist hub
- Smoke test checklist for every new build
- Exploratory testing charter template
Start free and let outside testers run your list on devices you do not own.