Verification Plan¶
- Status: draft
Verification Strategy¶
| Level | Method | Tooling |
|---|---|---|
| Unit | Automated tests | TBD (Kotlin test stack) |
| Integration | Automated tests against PostgreSQL | TBD (e.g. Testcontainers) |
| System | API-level + E2E frontend tests; the E2E suite doubles as CSV regression evidence for maintaining the validated state (ADR-0007) | TBD (Playwright or Cypress) |
| Documentation/code review | Human review of all changes (including AI-generated code) | Pull requests |
Requirements Traceability¶
Traceability chain: STR ↔ REQ (trace column in the requirement tables) —
REQ ↔ ADR (Refs in ADRs and requirement tables) — REQ ↔ test (convention
below) — change ↔ REQ/ADR (Refs: trailer in commit messages).
REQ ↔ test convention (binding from the first test on):
- Every test verifying requirement behavior references the REQ IDs in its KDoc and,
where reasonable, in the test method name or
@DisplayName. Precedent:backend/scope/.../ScopeSchemaTest.kt(REQ-SEP-001/002). - IDs are written exactly as in the requirement documents (
REQ-SEP-001), so the traceability matrix is derivable mechanically (grep/scan of test sources against the requirement tables) — no manual matrix is maintained. - The slash shorthand for several ids of one group is accepted and expands to the full
set:
REQ-SEP-001/002counts asREQ-SEP-001andREQ-SEP-002,REQ-SRCH-001/004/009/011as all four. It is the form the codebase already uses (98 citations in 74 files — including the precedent line above), so the generator reads it rather than the citations being rewritten to satisfy the tool. Corrected 2026-08-19: until then a compound citation silently credited only its FIRST id and the rest of the evidence never reached the matrix — 92 evidence cells across 36 requirements were missing. Only digits may follow a slash, and an expanded id that names no requirement row is discarded, never invented. - A generator produces the REQ↔test/code matrix and flags untested requirements and
gaps:
python3 scripts/generate-traceability.pywrites ../traceability/matrix.md (see ../traceability/README.md); CI runs it in--summarymode for visibility without gating the build.
Acceptance Criteria¶
TBD: per-release verification gates (all tests green, review complete, …).