Testing Principles
Seven well-known principles describe how testing really works. They guide what to test and how much is enough.
On this page · 5 min · Beginner
On this page
- Learning objectives
- Explanation
- Code example
- Step by step
- Real-world use
- Common mistakes
- Best practices
- Remember this
- Practice exercise
- Mini quiz
- Related topics
- My notes
- Reading time
- 5 min
- Difficulty
- Beginner
- Updated
- Oct 29, 2026
Related tutorials
Learning objectives#
- List the seven testing principles
- Apply them to real decisions
- Explain the pesticide paradox
- Explain the absence-of-errors fallacy
Explanation#
1) Testing shows the presence of defects, not their absence. 2) Exhaustive testing is impossible — prioritise by risk.
3) Early testing saves time and money. 4) Defects cluster together — a few modules contain most bugs.
5) Pesticide paradox — repeating the same tests stops finding new bugs; refresh them.
6) Testing is context dependent — a game and a medical device need different testing. 7) Absence-of-errors fallacy — bug-free software that does not meet user needs is still a failure.
Code example: Why exhaustive testing is impossible#
Login form: username (up to 30 chars), password (8–20 chars), "Remember me" checkbox
Possible usernames ≈ 95^30 (printable characters, every length)
Possible passwords ≈ 95^20
× 2 checkbox states
→ far more combinations than could ever be executed
So we choose: valid login, wrong password, empty fields, boundary lengths,
special characters, SQL-injection text, locked account, remember-me on/off.
A few dozen well-chosen tests cover the real risks instead of trillions of combinations.
This example is illustrative. Copy or download it and run it in your own environment; the expected output is shown above.
Step-by-step explanation#
- Count the combinations to see they are effectively infinite.
- Use risk and techniques to choose representative tests.
- Focus on boundaries, errors and security.
- Refresh tests as the product changes.
Real-world use case#
A test lead uses defect clustering data to give the payment module extra regression time each release.
Common mistakes#
It stops finding bugs (pesticide paradox). Add new cases from recent defects.
Check the product actually solves the user’s problem.
Best practices#
- Prioritise by risk
- Track where defects cluster
- Review and refresh test suites
- Adapt the approach to the domain
Remember this#
Defects present ≠ absent.
Exhaustive testing is impossible — prioritise.
Pesticide paradox: refresh your tests.
Practice exercise#
Your task: Which principle explains why most bugs come from the checkout module?
Show solution
Defect clustering.
Mini quiz#
Repeating identical tests eventually stops finding new defects. This is…
Want more? Practise all Manual Testing MCQs · Manual Testing interview questions
My notes#
Saved in this browser.