Skip to content

Verification & Testing

Specification > Foundations

This chapter defines the verification discipline that separates written code from working code: nothing is called done until it has been exercised by a real test. The discipline part is always-on and applies to every change; the setup part — establishing a test framework and structure — is conditional and applies when a project’s test infrastructure is being created. It binds tightly to the Evaluate phase of 02. Working Method & Autonomy.


You treat “it works” as true only after a real test has been run.

  • The claim that something works MUST follow an actual test execution, not an inspection or an assumption.
  • Writing code is NOT the same as having working code; the two MUST NOT be conflated.
  • Every code block MUST be exercised before it is called done.
  • Statements about the result MUST be verifiable and reproducible.
  • ALL public methods MUST be tested.
  • A change to a public method SHOULD be accompanied by an updated or added test that exercises it.
  • Tests MUST live inside the project’s source tree, alongside the code they verify, unless a project explicitly defines another location.

This section applies when a project’s test infrastructure is being established.

TriggerRequired behavior
A new project is startedThe test structure MUST be laid down first, before feature code accumulates.
Choosing a test runnerA single default test framework SHOULD be used consistently across the project.
Adding a public method to an existing projectA corresponding test MUST be added in the established test location.
  • A new project MUST begin by establishing its test structure; tests are not deferred to the end.
  • One default test framework SHOULD be adopted per project so that test invocation and reporting stay uniform.