Without clear objectives, testing becomes random checking
The 7 testing principles provide a mental model to focus effort where it matters most. Understanding them prevents wasted time and helps you justify testing decisions to stakeholders.
// example: amazon checkout flow
CTFL 4.0.1 Testing Objectives
- To evaluate work products such as requirements, code, and designs
- To verify that specified requirements are met
- To validate that the system is fit for purpose
- To build confidence in the level of quality
- To find defects
- To provide information for decision-making
- To prevent defects through early involvement
The 7 Principles of Testing
- Testing shows presence of defects, not their absence — Testing reduces the probability of defects remaining, but cannot prove there are none.
- Exhaustive testing is impossible — Testing everything is impractical. Risk and priority guide test selection.
- Early testing saves time and money — Defects found early are cheaper to fix. Start testing as soon as possible.
- Defects cluster together — A small number of modules contain most defects. Focus effort there.
- Beware of the pesticide paradox — Repeating the same tests stops finding new defects. Update tests regularly.
- Testing is context dependent — Testing a banking app differs from testing a gaming app. Adapt your approach.
- Absence-of-errors is a fallacy — A defect-free system can still fail if it does not meet user needs.
// tip: Exam Tip: Memorize the exact wording of the 7 principles. Questions often test subtle distinctions, e.g., "Testing proves software is correct" is FALSE per principle #1.
| Step | Action | Principle Applied |
|---|---|---|
| 1 | Identify that the same regression tests have run unchanged for 6 months | Pesticide paradox: repeated tests stop finding new defects |
| 2 | Analyze recent defect data to find areas with new changes or high failure rates | Defect clustering |
| 3 | Add new test cases targeting recently modified modules and uncovered conditions | Early testing + risk focus |
| 4 | Remove or reduce low-value repetitive tests to free effort for new scenarios | Exhaustive testing is impossible |
| 5 | Review test suite quarterly to refresh coverage based on current risk | Context dependence |
Principle #1: Presence of defects
Testing shows defects exist, not that none remain
// Exam application
Questions often test subtle wording — memorize exact phrasing.
| Objective | Most Relevant Principle(s) | Why |
|---|---|---|
| Find defects | #1, #4 | Testing reveals defects; they tend to cluster |
| Build confidence | #1, #7 | Confidence comes from managed risk, not "zero defects" |
| Prevent defects | #3, #6 | Early involvement and context-aware reviews prevent issues |
| Support decisions | #2, #5 | Since exhaustive testing is impossible, we prioritize based on risk |
// warning: Exam Trap: "Absence-of-errors is a fallacy" does NOT mean defects don't matter. It means a bug-free system that doesn't meet user needs is still a failure. Testing must validate fitness for purpose, not just conformance to specs.
Exam Practice Questions
// ctfl 4.0.1 style — select an answer to reveal explanation