Appearance
QA test suite — the case library
THE SPREADSHEET IS A BUILD OUTPUT. THIS LIBRARY IS THE SOURCE OF TRUTH.
Case DEFINITIONS live in tools/qa/cases-*.mjs and are owned by whoever changes the product. The workbook (documentation/portal/qa/qr-setu-qa-workbook.xlsx) is regenerated with npm run qa:workbook and every definition column is overwritten. Never edit a definition in the spreadsheet — edit the library and regenerate.
Execution columns (Assigned Tester onwards) are QA-owned and are never written by the generator.
WHY THIS IS NOT A CHAT MESSAGE
The previous suite was delivered in conversation. Fifty-two of its sixty-six cases were never transcribed anywhere, so a context reset destroyed them, and the owner-s own device findings had to be recovered from a screenshot in order to be analysed. A suite in a transcript cannot be re-run, diffed, assigned, or handed to a second tester.
Suite version: 26.0.1-QA-01 · Build under test: cb06ea1, built 2026-09-06 22:47, arm64-v8a · Backend: qr-setu-dev (dyhjofjjuazhyqcvlrkx)
125 cases. By priority: P0 52 · P1 46 · P2 23 · P3 4
By build state:
| state | cases | what a tester does |
|---|---|---|
ready | 114 | Built and reachable. A failure is a real defect — file it. |
blocked-not-built | 3 | Not in this build. Do not test, do not file. |
blocked-not-deployed | 3 | Built but unreachable from a phone (apps/web undeployed). Do not file. |
known-defect | 3 | Wrong on purpose this cycle. Record, do not re-file. |
watch | 2 | Reported once, not reproduced. Capture evidence if it recurs. |
⚠ The state column is what stops a tester filing a dozen defects against features that were never built. It is measured against the build, not assumed.
Coverage by feature
| sheet | cases |
|---|---|
| 01 Startup and Splash | 4 |
| 02 Sign Up | 4 |
| 03 Sign In | 3 |
| 04 OTP | 6 |
| 05 Address and Slug | 6 |
| 06 App Lock | 10 |
| 07 Session | 5 |
| 08 Consumer Home | 8 |
| 09 Navigation | 5 |
| 10 Account and Empty States | 7 |
| 11 QR Makers | 5 |
| 12 BioData | 26 |
| 13 Public Page and Links | 5 |
| 14 Business | 5 |
| 15 Security and Authz | 5 |
| 16 Backend and API | 5 |
| 17 UI-UX Conformance | 6 |
| 18 Regression | 4 |
| 19 Device Layout | 6 |
Run these two first, every cycle
- AND-004 proves the device is running the intended binary. If it is not, every other result this cycle is void.
- API-005 (
npm run check:ef-drift) proves the backend matches the repo. If it does not, a failure may be backend drift rather than an app defect.
What this suite deliberately does not cover
- iOS. This cycle is Android only. Cross-platform parity is a release requirement, so iOS needs its own cycle before sign-off.
- Features absent from this build: push, Meetings beyond its empty frame, photographs, people and access, the opening composer, themes, custom fields, the in-app preview, WhatsApp share, per-person share links, and https app links.
- Visual fidelity beyond UX-001-006. No script can diff an artboard against React Native.
npm run design:specextracts the design side mechanically; the comparison stays human.