1.4 The Seven Testing Principles
Key Takeaways
- Testing shows the presence of defects, not their absence.
- Exhaustive testing is impossible except in trivial cases, so prioritization is essential.
- Early testing saves cost and effort by finding defects closer to their origin.
- Defects cluster, and tests can lose effectiveness through the pesticide paradox.
- Testing is context dependent, and absence-of-errors is a fallacy when the product does not meet needs.
The Principles as Exam Tools
The seven testing principles are not slogans to memorize in isolation. CTFL questions often describe a project situation and ask which principle best explains it. The safest strategy is to connect each principle to a practical consequence.
The first principle is that testing shows the presence, not the absence, of defects. If a test fails, the team has evidence of a problem. If all tests pass, the team has evidence only for the tested conditions. Passing tests increase confidence but do not prove defect freedom.
The second principle is that exhaustive testing is impossible. Most systems have too many input combinations, data states, paths, devices, users, and timing conditions to test everything. Testers use risk, priorities, techniques, and constraints to choose useful coverage.
The third principle is early testing. Defects are generally cheaper to prevent or find near the time they are introduced. Reviewing requirements before design and code can prevent expensive rework. This principle supports shift-left thinking but is not limited to agile or DevOps.
| Principle | Common CTFL clue |
|---|---|
| Defects cluster | Most failures are found in a small number of modules |
| Pesticide paradox | The same tests stop finding new defects over time |
| Context dependent | Safety-critical testing differs from e-commerce testing |
| Absence-of-errors fallacy | A defect-free product still fails if it solves the wrong problem |
Defect clustering means defects are often unevenly distributed. If a complex pricing component has many failures, it may deserve more test attention than a stable static page. This does not mean testers should ignore other areas; it means evidence can guide focus.
The pesticide paradox says that repeating the same tests eventually becomes less effective at finding new defects. Tests need review and variation. New data, new paths, new techniques, and exploratory testing can reveal problems the old suite misses.
Testing is context dependent. A payroll system, an aircraft control component, a public website, and a classroom prototype have different risks, regulations, users, and acceptable evidence. A universal one-size-fits-all test process is not realistic.
The absence-of-errors fallacy closes the set. A system can have few known defects and still fail because it does not meet business goals or user needs. For example, a perfectly coded reporting tool is poor quality if it answers the wrong regulatory question.
On the exam, watch for absolute language. Statements such as test everything, prove no defects, or reuse the same tests forever conflict with multiple principles. Choose the principle that most directly matches the scenario, not just a true principle that is vaguely related.
A team repeatedly runs the same regression suite for many releases and notices it rarely finds new defects. Which testing principle is most directly illustrated?
Which statements correctly reflect the seven testing principles?
Select all that apply