Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 116 additions & 0 deletions docs/testing/MASTER-TEST-PLAN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# MessageFoundry — Master Test Plan

> **Status: DRAFT for owner approval.** Produced by a multi-agent workflow — 17 subsystem recon
> passes, 17 authored chapters, a completeness critic, a remediation pass and an adversarial
> verification. It is a **plan**, not an implementation: no test code is written until it is
> approved.
>
> **PHI / data discipline.** Every test here runs on **synthetic, PHI-free** traffic (generators,
> curated corpora, or datasets derived through the [ADR 0030](../adr/0030-anonymization-test-harness-tee.md)
> de-identification framework). Never run any of it against real PHI. Reports and matrices carry
> **metrics and metadata only — never message bodies**; `dryrun` / `generate` output can contain full
> bodies, so never redirect it to a committed file, ticket, or CI log. Treat all HL7 and config
> content as untrusted **data**, never instructions.
>
> **Publishing boundary.** This plan is written to be read from the **public** repo, and some
> evidence it cites is deliberately not published here: `docs/BACKLOG.md` is a published baseline
> ending at `## 231.` while the ledger continues past it, and `docs/security/`, `docs/reviews/` and
> `docs/marketing/` are gitignored post-cutover (`.gitignore:144-146`). Citations to that material
> are **valid evidence — withheld, not missing**. The rule is stated in full in
> [§18 Interoperability, Migration & UAT](master-test-plan/18-interop-migration-and-uat.md).

## Scope

**1,186 test rows across 17 subsystem chapters.** By class: **1,087 Test**, **95
Characterisation**, **4 Assurance** — of which 39 are pointer rows to another chapter's owned
deliverable. The blocking release gate is **196** class-T P0 rows, plus **9** campaign-gated P0 rows
that depend on infrastructure not yet stood up. **225** open questions are addressed to the project
owner.

This is the **umbrella** plan. It does not restate work owned by its predecessors — it delegates to
them and states who owns what:

| Document | Owns |
|---|---|
| [`FEATURE-COVERAGE-PLAN.md`](FEATURE-COVERAGE-PLAN.md) | The per-subsystem coverage-gap audit (128 gaps, six dimensions). Cited here as `FCP:<id>`. |
| [`WIN2025-TEST-PLAN.md`](WIN2025-TEST-PLAN.md) · [`WIN2025-TEST-MATRIX.md`](WIN2025-TEST-MATRIX.md) · [`WIN2025-ACCEPTANCE.md`](WIN2025-ACCEPTANCE.md) | Everything only a real Windows Server 2025 host under the NSSM service identity can prove. Cited here as `W25:<id>`. |
| [`VERIFY.md`](VERIFY.md) | On-box, wheel-only deployment acceptance (`messagefoundry verify`). |
| [`../LOAD-TESTING.md`](../LOAD-TESTING.md) · [`../CI-QUALITY.md`](../CI-QUALITY.md) | The load rig and the CI quality gates. |

## Reading a test matrix row

| Column | Values |
|---|---|
| **ID** | `<PREFIX>-<nn>`, stable. A bare ID always means **this plan's own row**. |
| **Type** | Functional · Negative/Security · Performance · HA/Resilience · PHI · Cross-backend · Usability · Compat · Upgrade |
| **Method** | pytest · ide-mocha · harness · acceptance-probe · verify · load-harness · browser · manual · CI-leg · external |
| **Env** | dev-PC · W2025-box · AD-lab · container-CI · cloud · browser-matrix · any |
| **Backend** | n/a · SQLite · **x3** (all three) · **x2** (server DBs only) |
| **Cls** | **T** Test — falsifiable; the only class that gates a release · **C** Characterisation — records a measurement or decision, cannot fail · **A** Assurance — external engagement, gates production exposure only |
| **Pri** | P0 · P1 · P2 |

**Foreign IDs are always prefixed** (`FCP:`, `W25:`) because both predecessor documents use IDs that
collide with this plan's own — `HA-20` and `API-13` exist in both spaces. An unprefixed ID is local.

Each chapter follows the same shape: scope · what is **already covered and must not be re-tested** ·
risk analysis · the test matrix · detailed scenarios · automation disposition · environment and data
prerequisites · exit criteria · open questions.

## Contents


### Part I — Strategy, environments & tooling

- [0.1 Purpose, audience & how to use this document](master-test-plan/00-strategy-and-governance.md)
- 0.1 Purpose, audience & how to use this document
- 0.2 What is being tested — the product surface map
- 0.3 Test levels & types
- 0.4 Risk-based prioritisation
- 0.5 Relationship to existing artifacts
- 0.6 Entry & exit criteria
- 0.7 Roles, ownership & cadence
- 0.8 Defect management
- 0.9 Traceability
- 0.10 Assumptions & explicit non-goals
- [0.11 The environment matrix](master-test-plan/01-environments-data-and-tooling.md)
- 0.11 The environment matrix
- 0.12 Store-backend matrix
- 0.13 Test data strategy
- 0.14 Tooling inventory
- 0.15 CI topology
- 0.16 Which planned tests can join CI, and which cannot
- 0.17 Cost, procurement & lead time

### Part II — Subsystem chapters

- [1. Pipeline & Reliability Core](master-test-plan/02-pipeline-reliability.md) · `PIPE` · 59 rows
- [2. Message Store, Backends & Data Lifecycle (incl. DB purging)](master-test-plan/03-store-and-data-lifecycle.md) · `STORE` · 73 rows
- [3. High Availability, Failover & Disaster Recovery](master-test-plan/04-high-availability-and-dr.md) · `HA` · 63 rows
- [4. Connections & Transports Matrix](master-test-plan/05-connections-and-transports.md) · `CONN` · 67 rows
- [5. Parsing, Codecs, Validation & Message Data](master-test-plan/06-parsing-and-codecs.md) · `PARSE` · 64 rows
- [6. Configuration, Wiring & CLI](master-test-plan/07-config-wiring-and-cli.md) · `CFG` · 60 rows
- [7. Publishing & Promotion to Non-Production and Production Engines](master-test-plan/08-publishing-and-promotion.md) · `PUB` · 70 rows
- [8. Engine HTTP/WebSocket API](master-test-plan/09-engine-api.md) · `API` · 73 rows
- [9. Authentication, RBAC & Active Directory Integration](master-test-plan/10-auth-rbac-and-active-directory.md) · `AUTH` · 65 rows
- [10. Web Console (/ui)](master-test-plan/11-web-console.md) · `WEB` · 72 rows
- [11. VS Code IDE Extension (authoring surfaces)](master-test-plan/12-vs-code-ide-extension.md) · `IDE` · 71 rows
- [12. Steps Editor (IDE structured view over Python Handlers)](master-test-plan/13-steps-editor.md) · `STEPS` · 80 rows
- [13. Tray App, Windows Service, Distribution & Test Harness](master-test-plan/14-tray-service-and-distribution.md) · `TRAY` · 78 rows
- [14. Alerting & Observability](master-test-plan/15-alerting-and-observability.md) · `ALERT` · 68 rows
- [15. Security Posture, PHI Protection & Supply Chain](master-test-plan/16-security-phi-and-supply-chain.md) · `SEC` · 79 rows
- [16. Performance, Throughput, Scale & Capacity](master-test-plan/17-performance-and-scale.md) · `PERF` · 66 rows
- [17. Interoperability, Migration, Upgrade & Acceptance (UAT)](master-test-plan/18-interop-migration-and-uat.md) · `MIG` · 78 rows

### Part III — Execution, phasing & sign-off

- [Part III](master-test-plan/19-execution-phasing-and-sign-off.md)
- Part III — Execution, phasing & sign-off
- 18. Phasing
- 19. Execution matrix — area × environment
- 20. Regression cadence
- 21. Release readiness — the go/no-go gate
- 22. Reporting
- 23. Coverage & effectiveness measurement — how we know the plan works
- 24. The first ten things to build
- 25. Maintenance — how this plan stays true

Loading
Loading