practice

Non-Functional Test Strategy

The plan for how each quality attribute claim will be demonstrated, tying every NFR to a test that could falsify it.

nfrtestingperformance

An NFR without a corresponding test is an aspiration, and the majority of architecture documents contain more aspirations than requirements. The strategy's job is to close that loop: for each stated target, name the test, the environment, the data volume, the pass criterion and the point in the lifecycle at which it runs.

The mapping is rarely one-to-one and that is the useful part. Availability is demonstrated by failover exercises and chaos experiments, not by a load test. Recoverability is demonstrated by an actual restore from backup with a timer running. Scalability needs a test at target volume plus headroom, with data at production cardinality, because a query plan that works on a million rows may not survive a hundred million. Security needs pipeline scanning plus periodic adversarial testing.

The practical failure is scheduling everything into a phase before go-live, where discovering that the architecture cannot meet a target is discovered too late to change the architecture. The strategy should place the falsifying test as early as it can be run — often as a spike against a skeleton in the first weeks, which is the cheapest moment to learn the design does not hold.