Quality Assurance
The plan for testing KICKO and how it maps to the docs.
Current state - be honest
Acceptance criteria (Given/When/Then) exist per feature area in every module URD - those are the executable spec. But no TC-<AREA>-NNN test-case files exist yet, so the Traceability Matrix Tests column is truthfully -. Phase 1 is in UAT; the suite below is being authored, money-paths first.
What to test (source of truth)
The module URD acceptance blocks (AC-<AREA>-NN) are the source of truth for "what to test". Every Must requirement should map to at least one test case. The same <AREA> keys URD ⇄ PRD ⇄ TC.
Levels
| Level | Scope | Where |
|---|---|---|
| Unit | a package's logic | package bun run test |
| Integration | service seams (Kafka/CDC, payment IPN, invoice signing) | per-package integration docs |
| E2E / UAT | real merchant flows end-to-end | UAT environment (below) |
Priority order - money paths first: payment · tax/invoice · finance · pricing (these document the fewest error scenarios today, so they carry the most risk).
Test-case template
TC files live at content/{en,vi}/modules/<tier>/<module>/tests/TC-<AREA>-NNN.md, keyed to a URD area + AC:
# TC-<AREA>-001 - <title>
- Requirement: URD-<AREA>-NNN · AC: AC-<AREA>-NN
- Pre-conditions / test data:
- Steps:
- Expected (include error codes - 422 / 409 / 404 - for negative cases):
- Type: positive | negative | boundaryAuthoring a TC for a module makes its Tests cell in the Traceability Matrix turn from - to ✓ N automatically (the matrix counts the tests/ files).
UAT
| Item | Value |
|---|---|
| Environment | to fill - the UAT cluster URL |
| Test accounts | to fill - a seeded merchant + one account per role |
| Test data | to fill - seeded products / customers / invoices |
| Entry criteria | feature-complete · smoke test passed · environment up & seeded |
| Exit criteria | all S0/S1 defects closed · every AC in the release scope verified on a real merchant |
Defects
| Severity | Meaning | Target |
|---|---|---|
| S0 | blocks release / data loss / money wrong | immediate - hotfix lane |
| S1 | a major feature is broken | fixed before release |
| S2 | minor, no money impact | next cycle |
| S3 | cosmetic | backlog |
A dedicated hotfix lane (branch + fast deploy path) handles UAT-blocking bugs - see Roadmap → Phase 1.