Skip to content

Independent R&D project · Cologne

Verification

What each kind of test can prove, and what no test establishes.

Non-normative

Companion version
1.0
Maps to COADF Core
2.2
Status
Current
Last reviewed

What each kind of test can prove

A property is verified at the level that can see it. A unit test cannot see a deployment; an admission test cannot see a model's reply. The table names, for each level, what it proves, what it cannot, and where the Companion uses it.

Levels of verification, what each proves, what each cannot, and where the Companion uses it
LevelProvesCannot proveUsed for
Unit testOne component refuses what it must refuseThat the component is on the pathBoundary schemas, verification factories, policy rules
Architecture testThe dependency graph has no forbidden edgeData paths that are not importsProbabilistic boundary, standards isolation
Contract testTwo sides agree on a shape, including required provenanceThat both sides are deployed at compatible versionsProposal and decision contracts
Integration testThe property holds against the real dependencyBehaviour under a different configurationAudit trail privileges, context propagation, policy revisions
End-to-end testA forbidden state cannot reach an outputPaths the test does not exerciseUnverified values, the publication fence
Deployment or admission testThe platform refuses a workload that breaks a ruleAnything inside the workloadPinned images, named revisions, network isolation
Manual evidenceA named person performed a written procedureThat it will be performed againLicence reviews, replays of historical decisions

Both directions: the positive path and the proof of teeth

Every property in the Companion has a positive check (passing looks like this) and a negative one (this defect, planted, is refused). A suite with only the positive half can have every constraint deleted and stay green. The negative half is what shows the check is on the path.

The five steps of a proof of teeth are on the Executable Fences page, and the Python and FastAPI profile runs them: a planted import breaks a contract, a deleted constraint turns a test red, a planted sentinel fails the publication fence, and each restore is compared byte for byte.

Count what ran

A result is not "green". It is: which checks ran, how many assertions executed, in which identified run, with which outcome. The COADF conformance model says the same about controls: a skipped check, a previous success or a selection that ran no tests at all is not current verification.

  • A test selection that matches nothing can succeed. Assert the count.
  • A test that skips for want of a database is not a test that passed. Report it as not run.
  • A job that is skipped can be reported as successful. Require the check that cannot be skipped.

When a person is the control

Some controls are held by a person performing a written procedure: a licence review, a replay of sampled historical decisions, a decision at merge. Report them as manual, with the person's name and the procedure, never as automated. A manual control reported honestly is worth more than an automated one reported loosely.

What verification does not establish

Tests establish that tests passed. They do not establish regulatory compliance, certification or conformity assessment, and a complete suite for every property in this Companion establishes none of those either. Automated guards over text and code are necessary and not sufficient: they cannot see a mechanism expressed through control flow, renamed identifiers or a diagram's geometry, and human review remains part of the verification.

COADF Engineering Companion 1.0 · non-normative · maps to COADF Core 2.2

Publication rights reserved. No public licence is granted for the COADF Engineering Companion 1.0 or its reference examples at this time.

IP and publication status