Test Every User Path
Systematically walk every path a user can take and verify each works - the complete functional test pass.
The route
5 steps to Done
- 01
Map every user path
You test what you have mapped - build the complete path inventory.
Preview prompt + verify gate ▾ Hide ▴
Map every user path in this app. Produce a table organized by persona/state (new visitor, logged-out, new user, returning user, admin if exists): each path as a numbered sequence of actions (e.g. 'land on home -> search X -> open result -> start action -> complete'). Include: all happy paths, alternate paths (back buttons, cancels, edits), and error paths (invalid input, missing data, unauthorized access). Number every path for tracking.
- ✓ All personas/states covered
- ✓ Error paths are included per feature
- ✓ Paths are concrete action sequences
- 02
Execute the happy paths
Prove the core promises work end to end first.
Preview prompt + verify gate ▾ Hide ▴
Execute every happy path from the map in a real session. For each: perform the actions exactly, record PASS/FAIL with what you observed at each step (including data persisting where expected - refresh to confirm), and capture any friction even on passing paths (slow loads, confusing labels). Use a fresh account where the path implies one. Report the results table.
- ✓ Every path was actually performed
- ✓ Persistence checked with refreshes
- ✓ Friction notes captured
- 03
Execute alternate and error paths
Real users cancel, go back, and type garbage - test that world.
Preview prompt + verify gate ▾ Hide ▴
Execute every alternate and error path. Alternates: back/cancel mid-flow (state preserved or cleanly reset?), editing existing data, repeating actions. Errors: invalid/empty/hostile input in every form, direct URLs to unauthorized or nonexistent resources, actions on deleted items, double submissions. Record PASS/FAIL per variation - graceful handling (visible message, no crash, no silent loss) is the bar.
- ✓ Every form was fed invalid input
- ✓ Unauthorized/nonexistent access tested
- ✓ Grace, not just survival, was assessed
- 04
Fix all failures
Convert the FAIL list to fixes, worst-first.
Preview prompt + verify gate ▾ Hide ▴
Fix every FAIL from the executed paths, ordered by severity (data loss > blocked core path > bad error handling > friction). For each: diagnose the cause, implement the fix, then RE-RUN the exact failed path to verify, and note the evidence. Do not batch-claim fixes - each failed path gets its own re-run. Update the results table as you go.
- ✓ Fixes ordered by severity
- ✓ Each fix verified by re-running its path
- ✓ The table reflects final state
- 05
Final regression sweep
Fixes break things - run the full map once more.
Preview prompt + verify gate ▾ Hide ▴
Run the complete path map one final time (happy, alternate, error) as a regression sweep, since fixes can break previously-passing paths. Record the final PASS/FAIL table. Anything still failing gets fixed and the affected section re-run. Deliver the final table plus a short list of known limitations consciously accepted (with reasons).
- ✓ The full map was re-run after fixes
- ✓ New regressions were caught and fixed
- ✓ Known limitations are explicit