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?”.
Principles
Section titled “Principles”- 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.
To be sure of something, we do something
Section titled “To be sure of something, we do something”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 |
Where to invest
Section titled “Where to invest”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.