Testing principles serve practical decisions, beyond exams or quotations: when to stop, what to cover first, and why absolute quality remains unattainable even for a strong team.
The main objectives of testing
- →Expose risks before release while fixes remain relatively inexpensive.
- →Confirm that critical user and business expectations are met.
- →Give the team evidence to decide whether to release, refine, reduce scope, or strengthen monitoring.
- →Improve the product and development process through feedback as well as defect reports.
The seven principles of testing
- →Testing shows the presence of defects but does not prove their absence. Even extensive checks cannot guarantee a perfect product.
- →Exhaustive testing is impossible. QA therefore chooses which risks to cover first and which to accept deliberately.
- →Early testing is cheaper and more useful than late testing. Finding a requirements gap before development is almost always preferable to discovering it in production.
- →Defects tend to cluster. Unstable modules, complex integrations, and architectural weaknesses usually produce more problems than the rest of the system.
- →Repeatedly running the same checks eventually stops finding new defects. This is the pesticide paradox: tests need updating and review.
- →Testing depends on context. What is reasonable for a medical system may be excessive for an internal tool, and vice versa.
- →Finding no defects has little value if the product solves the wrong problem. A technically clean system can still be useless to its users.
Applying the principles at work
- →Discuss coverage of specific risks rather than arguing over absolute coverage figures.
- →Regularly review the regression suite and remove checks that no longer add value.
- →Shift some testing left into requirements, contracts, data schemas, and design review.
- →Match rigor to the business context, consequences of errors, and testing costs.
💡
Testing principles are most useful when they help abandon the illusion that everything must be checked.