What are the seven principles of software testing?
60-second answer
The seven ISTQB principles are: one, testing shows the presence of defects, not their absence. Two, exhaustive testing is impossible, so we prioritise by risk. Three, early testing saves time and money. Four, defects cluster together, so a few modules contain most bugs. Five, the pesticide paradox: repeating the same tests stops finding new bugs, so tests must be updated. Six, testing is context-dependent, so a banking app is tested differently from a game. Seven, the absence-of-errors fallacy: a bug-free product that doesn't meet user needs is still a failure.
Explanation
Interviewers like it when you connect each principle to practice:
- Presence of defects: we report "no defects found in the tested scope", not "no defects".
- Exhaustive testing impossible: use techniques like equivalence partitioning and risk-based testing.
- Early testing (shift-left): review requirements and test in each sprint.
- Defect clustering (Pareto 80/20): focus regression on modules with history of bugs.
- Pesticide paradox: refresh test data and add new cases regularly.
- Context-dependent: safety-critical systems need formal, documented testing; a startup MVP may favour exploratory testing.
- Absence-of-errors fallacy: validate with real user needs, not just specs.
Example
On an e-commerce project, 70% of production bugs came from the payment and promotions modules. Applying defect clustering, the team doubled regression coverage there and cut escaped bugs by half.
Sample code
P-E-E-D-P-C-A
Presence · Exhaustive · Early · Defect clustering · Pesticide · Context · Absence-of-errors