Coverage as a shape, not a percentage.
A single coverage number hides more than it shows. SysEdge maps every test to the specification artefact it verifies — across four V-model tiers — so you can see not just whether a feature is tested, but at what level of abstraction the verification exists, and exactly where the gaps are.
The V-model mapping
Four tiers. Each linked to a specification artefact.
Coverage isn't one number; it's a shape across four V-model tiers. SysEdge maps every test to the spec artefact it verifies — so the graph can answer "does the export feature have a unit test, an API contract test, a UI flow test, and an end-to-end journey?" as four separate yes/no answers, not one aggregated percentage.
| Tier | Spec artefact verified | Test form | Session ownership |
|---|---|---|---|
| e2e | User Story | Playwright cross-tool journey — multiple instances, end-to-end user goal | master session |
| usecase | Use Case | Playwright single UC flow — one actor, one goal, with exception paths | owning session per instance |
| integration | Feature / Module | Python pytest API contract — live endpoint, real data, permission boundary checks | owning session per instance |
| component | Symbol / Routine | Go test or vitest — function level, mocked dependencies, fast feedback | owning session per instance |
Gaps at any tier are surfaced by test-gaps --instance X with the exact test file to create. The tier structure is enforced by the graph — a test linked at the wrong tier returns a validation warning.
test-gaps — surfacing the shape at session start
Thirty seconds to know exactly which tests are missing.
Every session starts with test-gaps --instance <name>. The command queries the graph for features with missing VERIFIES edges at any tier and returns a structured gap report — grouped by module, annotated with what already exists.
The [has: cmp,int] annotation shows what tiers already exist — so sessions know whether they are adding a first test or completing an existing partial coverage picture. A feature showing [has: cmp,int] needs a Playwright UC flow test; a feature with no annotation needs tests at all three tiers.
The hint line links to the relevant testing pattern document. Sessions do not have to discover the right test file name or location — the graph provides it directly.
After one day — measured results on a 12-instance system
9 of 11 instances at 100% integration coverage. Automatically.
After one day of graph-guided sessions on a 12-instance production system, the coverage shape changed measurably — not because sessions wrote more tests, but because they wrote the right tests, guided by the gap report at session start.
| Instance | Integration | Component | Use-case | Status |
|---|---|---|---|---|
| core | 40/40 | 40/40 | 40/40 | Full coverage |
| framework | 30/30 | 30/30 | 30/30 | Full coverage |
| manage | 35/35 | 35/35 | 32/35 | 3 UC gaps remaining |
| plan | 43/43 | 43/43 | 43/43 | Full coverage |
| platform | 13/13 | 13/13 | 13/13 | Full coverage |
| licmcp | 22/22 | 22/22 | 22/22 | Full coverage |
| training | 18/18 | 18/18 | 18/18 | Full coverage |
| architect | 27/27 | 27/27 | 27/27 | Full coverage |
| deploy | 19/19 | 14/19 | 19/19 | 5 component gaps |
| sys-edge | 31/31 | 31/31 | 31/31 | Full coverage |
| master | — | — | 11/11 | E2E tier only (by design) |
Coverage measured after one day of graph-guided sessions across the 12-instance system. 1,459 vitest tests auto-scanned; 5,807 VERIFIES edges created by scan — no manual registration required.
Formbricks — reproducible external measurement
The export feature had zero tests at every tier.
When SysEdge was run against the Formbricks open-source codebase, test-gaps --instance surveys returned a full gap report for the Response Analysis module. F-ANLYS-003 (Export responses) had zero tests at component, integration, and use-case tiers — not because tests weren't running, but because the feature was never registered in the test graph and therefore invisible to any coverage tool.
F-ANLYS-003 had no unit test, no API contract test, and no Playwright UI flow. The export feature had shipped and been deployed with zero test coverage at any tier. A conventional coverage tool would report 0% for this file — but only if it was included in the coverage scan configuration. Because the feature was not registered in any test graph, it was not included in any scan. The gap was invisible.
DEF-FBK-001 — survey response export includes PII when anonymisation is enabled — had no test catching it. Not because tests weren't running, but because the feature was never registered in the test graph. The graph makes the absence of a VERIFIES edge as visible as the presence of one.
Requirements traceability: how the specification gap caused the defect →
Code scan — language support
Symbols and tests auto-linked. No manual registration.
The code scanner reads your test files and source symbols and creates VERIFIES edges automatically. For fully-supported languages, every test function is matched against the feature it exercises — using import analysis and naming conventions — and linked to the graph without any manual step.
The initial scan runs in under 30 seconds on a 50,000-line codebase. Incremental re-scans (triggered by session end protocol) add only the delta since the last run.
The export feature had zero tests. The graph knew before the defect did.
F-ANLYS-003 had shipped with no component test, no integration test, and no use-case flow. A coverage percentage wouldn't show this — because the feature wasn't registered in any scan configuration. SysEdge makes the absence of a VERIFIES edge as visible as the presence of one. Nine of eleven instances reached 100% integration coverage in one day of graph-guided sessions.