Skip to content

    Test strategy

    Testing is how we earn the confidence to change something and know we have not broken it. We organise it around what we are trying to be sure of, not around a list of tools, because “how do we test that?” is a more useful question than “which tests do we write?”.

    • Test early and often. The cheapest problem to fix is the one caught closest to writing it.
    • Testing is everyone’s job. It is not a phase at the end, or one person’s role.
    • Automate what repeats. Save people for the judgement a machine cannot make.
    • Value, not vanity. A test earns its place through the confidence it buys, not the coverage number it moves.

    Read this from the top down. The higher rows guard against building the wrong thing; the lower ones against building it wrongly.

    To be confident that… …we do
    there is a real need discovery and user research
    the design works for people usability testing and prototypes
    a single piece behaves unit tests
    the pieces work together integration and contract tests
    a whole journey works end-to-end tests
    it holds up under real load performance and load testing
    it fails safely boundary, failure and resilience testing
    it is secure security testing, dependency scanning and penetration tests
    everyone can use it accessibility testing
    we have not broken what worked automated regression tests
    it behaves once live monitoring and checks in production

    Lean on fast, automated checks low down, where they are cheap and can run constantly. Use slower, broader tests more sparingly, higher up. The right mix is a judgement per engagement, and it is one of the things the delivery quality review asks about.