replica-test
Reads the flows in
. Writes
,
, and end-to-end tests in the project (
). Templates in
this folder:
,
,
.
The rule
Test your clone, not the original. Never load test, fuzz, script or
hammer the original app's servers. Using the original by hand, as a normal
user, to see how it behaves is fine.
Step 1: the plan
For every flow F01, F02... in the recon map, write:
- Happy path: the steps, and what the user should see at the end.
- Edge cases that apply. Go down this list for every flow:
empty input, very long input, emoji and accents, two tabs at once,
double click on submit, back button mid-flow, refresh mid-flow, slow
network, offline, expired session, second user's data (must be invisible),
time zones and daylight saving, mobile width, keyboard only, screen reader
labels.
- Negative cases: wrong password, card declined (Stripe test card
), permission denied, deleted record.
Number every case: F01-H1, F01-E3, F01-N2.
Step 2: automate what you can
Playwright, one spec per flow, against the local dev server with seed data.
Use roles and labels for selectors (
getByRole('button', { name: 'Book' })
),
never CSS classes. See
.
bash
npm i -D @playwright/test && npx playwright install chromium
npx playwright test
Add to every spec: fail on console errors, fail on any 5xx response, and an
axe accessibility scan (
) on each screen.
Step 3: click through the rest
What cannot be automated (emails arriving, OAuth with real providers,
payments end to end, visual glitches) gets a manual pass. If a browser tool is
available, drive the local clone with it and screenshot each step. Otherwise
give the user the checklist and wait for answers.
Step 4: report bugs
Every bug goes in
in the
format: an ID, a
severity, exact steps, expected, actual, evidence. Severity:
| means |
|---|
| S1 | data loss, security hole, payments wrong, core flow blocked |
| S2 | a feature broken, no workaround |
| S3 | broken with a workaround, or visibly wrong |
| S4 | cosmetic |
Only report what you reproduced. "Might be an issue" goes in a separate
"to check" list.
Step 5: fix loop
Fix S1 and S2 first. For every fix: write the failing test first, fix, watch
it pass, keep the test. Re-run the whole suite after each batch. Update
with the commit that fixed each one.
Output
, the specs,
, and a summary: cases run, passed,
failed, bugs by severity, fixed so far. Ship nothing with an open S1. Next:
.