The Seven Testing Principles

The seven testing principles are short, general guidelines in the ISTQB Foundation Level syllabus that apply to all testing. They describe how testing behaves: what it can prove, why it cannot cover everything, when it pays most, where defects hide and why no single approach fits every product. They are not rules or process steps; they are the reasons behind a tester's everyday choices.

For example, a sprint ends with all 300 tests passing. The principles tell you what that means and what it does not: defects can still exist, the 300 tests are a small selection from far more possible ones, and if they have run unchanged for months they may no longer find new defects.

Why it matters

Teams that ignore the principles make predictable mistakes: they promise "bug-free" releases, test everything to the same depth and run out of time, start testing only when the code is finished, and trust a regression suite that stopped finding anything long ago. Each mistake costs money or trust when a failure reaches users.

For you as a tester, the principles are the arguments behind your decisions: why the payment module gets more testing than the settings page, why you want to see a story before it is built, and why "all tests passed" is never the whole report. A decision is easier to accept when you can name its reason.

The seven principles in ISTQB CTFL v4.0

Section 1.3 of the ISTQB Foundation Level syllabus v4.0 lists these seven principles, under these names. Each sums up long experience across many projects, and each changes something you do.

  • 1. Testing shows the presence, not the absence of defects: it can show that defects exist, but cannot prove that there are none. It lowers the chance that defects remain undiscovered.
  • 2. Exhaustive testing is impossible: testing everything is not feasible except in trivial cases, so test techniques, test case prioritisation and risk-based testing are used to focus the effort.
  • 3. Early testing saves time and money: a defect removed early causes no further defects in the work products built on it, and fewer failures occur later in the lifecycle.
  • 4. Defects cluster together: a small number of components usually contain most of the defects found, or cause most failures in operation, an illustration of the Pareto principle.
  • 5. Tests wear out (older name: the pesticide paradox): tests repeated many times without change find fewer and fewer new defects.
  • 6. Testing is context dependent: no single approach fits every product; testing is done differently in different contexts.
  • 7. Absence-of-defects fallacy (older name: absence-of-errors fallacy): verification alone does not make a system successful; it must also meet its users' needs, so validation is needed as well.

What testing can and cannot claim: principles 1, 2 and 7

Principle 1 changes how you report. A bank's app passes all 250 regression tests; a week after release, customers find that standing transfers set for the 31st are skipped in months with fewer than 31 days. No test used that date. As in the lesson on why software testing matters, a passing run is evidence about what was tested and none about what was not, so report the scope, the results, what was not tested and the remaining risk, never "bug-free".

Principle 2 changes how you choose tests. The hotel search form below has five fields and over 17 million valid combinations, before invalid values, browsers and devices. So you select tests with test design techniques you will learn later in the roadmap: equivalence partitions and boundary values per field, pairwise combinations across fields, and the most depth where a failure would hurt most.

Principle 7 changes what you check besides the specification. A university's course registration portal meets all 40 specified rules and every defect found is fixed, yet students keep registering for courses whose lectures overlap, because the portal never shows a timetable. As in the lesson on verification and validation: watch real users try the main task, join acceptance testing, and report such gaps even when no requirement is broken.

Hotel search: every valid combination

city          50
check-in     365   (dates up to one year ahead)
nights        30   (1..30)
guests         8   (1..8)
room type      4
------------------------------------------------
50 x 365 x 30 x 8 x 4 = 17,520,000 combinations
At one test per second: about 203 days, nonstop

Try it: Pairwise Testing Generator

Where and when to put the effort: principles 3 to 6

Principle 3 changes when you start. The lesson on why software testing matters followed one requirement defect to three moments, and each later moment cost more; the same holds for every story. A story says "Users can upload a profile photo of up to 5 MB." In refinement you ask which formats are allowed, whether 5 MB means 5,000,000 or 5,242,880 bytes, and what users see when a file is too large. Three answers now can prevent three defects later. Review stories, acceptance criteria and designs as soon as they exist, and run tests as soon as something can run.

Principle 4 changes where you look hardest. In a shop's last three releases, most logged defects were in the promotions module, where discount rules combine. That module gets more test cases, an exploratory session and a close look at every change, and the cluster becomes an input to risk-based testing. Keep lighter testing everywhere else: a new feature or a rewrite can start a new cluster.

Principle 5 changes how you maintain tests. A checkout suite has used the same three products and one test card for a year; it stays green while a defect in products with size variants reaches customers. Vary the test data and add tests for new features, changed code and every escaped defect. Repetition is still right for automated regression tests, whose job is to show that what worked still works.

Principle 6 changes how formal and deep you go. An insulin dose calculator needs systematic test design, traceability to requirements, documented evidence and independent review. A two-week marketing landing page needs a quick check of content, links, forms and layout on its visitors' browsers. Before choosing an approach, ask about the domain, risks, regulations, the team's lifecycle and the deadline.

Try it: Acceptance Criteria Generator Try it: Risk-Based Test Generator Try it: Regression Scenario Generator

Worked example: "Can you confirm there are no bugs by Thursday?"

A pharmacy delivery app adds prescription upload: the customer photographs a prescription and a pharmacist checks it before the order is prepared. On Monday the delivery manager asks: "Can you test everything and confirm there are no bugs before Thursday's release?" The tester answers with the principles, turning the request into a plan instead of a yes or a no:

  • Principle 1: "I can't confirm there are no bugs. On Thursday I can show what I tested, what failed, what I could not test and the risk that remains."
  • Principle 2: "Every phone, file type, photo quality and prescription state together is far too many cases, so I will pick the riskiest combinations and cover the rest pairwise."
  • Principle 4: "Most of our defects in the last two releases were in prescription checks, so that part gets the deepest testing."
  • Principle 5: "Our regression suite has not changed since spring; I will add cases for expired prescriptions and blurred photos, which it never covered."
  • Principle 6: "This is health data and prescription medicine, so I will keep evidence traced to each requirement, more formally than for a promotions banner."
  • Principle 7: "Can a pharmacist try the check screen on Tuesday? It could meet the specification and still be too slow at a busy counter."
  • Principle 3: "For the next feature, invite me to refinement, so questions such as which file types we accept are answered before coding."
Each of the seven ISTQB testing principles beside an example from this lesson and the everyday decision it changes: what to report, which tests to select, when to start and when to refresh a suite.
PrincipleExample from this lessonDecision it changes
1 · Presence, not absence of defects250 tests pass; transfers set for the 31st are still skippedReport scope, results, untested areas and remaining risk, never "bug-free"
2 · Exhaustive testing is impossibleHotel search form: 17,520,000 valid combinationsSelect tests with partitions, boundaries, pairwise and risk
3 · Early testing saves time and moneyThe 5 MB photo rule questioned in refinementReview stories and criteria before any code exists
4 · Defects cluster togetherMost logged defects sit in the promotions moduleTest the cluster deepest; keep lighter testing elsewhere
5 · Tests wear outSame products and card for a year; a size-variant defect escapesVary data and add new tests; keep automated regression checks
6 · Testing is context dependentInsulin dose calculator vs two-week landing pageSet formality and depth from domain, risk and regulation
7 · Absence-of-defects fallacyAll 40 rules met; students still pick overlapping lecturesValidate with real users, not only against the specification

Principle names as in ISTQB CTFL v4.0, section 1.3. Older syllabus versions call principle 5 the pesticide paradox.

Common mistakes

  • Saying "fully tested" or "no bugs" after a passing run, instead of stating the tested scope and the remaining risk.
  • Answering "exhaustive testing is impossible" with random or shallow testing, instead of choosing tests with techniques and risk.
  • Waiting for a testable build before reviewing anything, so requirement defects surface later as code defects.
  • Focusing only on the last release's defect cluster, or ignoring the defect log entirely.
  • Leaving test data and scenarios unchanged for months and reading a long green streak as proof that nothing new is wrong.
  • Copying a test approach from another product, or treating "all requirements pass" as "users' needs are met".

The QA perspective

The principles show up at fixed moments of a tester's week. In refinement, early testing and the absence-of-defects fallacy make you ask: "How will we know this works, and does it solve the user's problem?" In test planning, exhaustive testing, defect clustering and context decide what gets deep testing and how formal it must be; the defect log and production incidents, shared by developers and support, are your evidence for clusters.

In reporting, principle 1 shapes every status report: scope, results, open defects, untested areas and residual risk. At the end of each release, ask which tests have not found anything for a long time and which defects escaped to production; that is when you refresh the suite. Record why you chose the depth you chose, so the next tester sees the reasoning, not only the tests.

Practice exercise

Name the principle behind each statement

Your task

The notes below come from a release retrospective for a school's online fee payment portal. Each statement ignores one of the seven principles. For each one, name the principle and write what you would do or say instead.

Each principle appears exactly once.

Material
Release 5.2 retrospective, school fee payment portal

A. "The regression suite has been green for eight months, so the fee
   module is safe."
B. "QA joins once the build is on staging; reviewing stories is the
   business analyst's job."
C. "We ran 412 test cases and fixed every defect, so parents will be happy
   with the new instalment plan."
D. "Use the checklist from the hospital app. It worked there."
E. "Before Friday, test every combination of 12 grades, 4 payment methods,
   1 to 10 instalments and 5 discount types."
F. "Testing passed, so we can tell the school there are no bugs."
G. "Spread testing evenly: every module gets two days."
Steps
  1. Read each statement and decide what it assumes about testing.
  2. Match it to one of the seven principles, using each principle once.
  3. Write, in one sentence, the decision you would make instead.
  4. For statement E, work out how many combinations "every combination" means.
Show the model answer
Model answer

A: tests wear out. Eight green months show that the suite still passes, not that it can still find new defects. Review it, vary data such as sibling discounts and mid-year enrolment, and add tests for what changed in 5.2.

B: early testing saves time and money. Ask to review stories and acceptance criteria in refinement; questions about instalments and refunds are cheapest before coding.

C: absence-of-defects fallacy. Passing tests and fixed defects show that the portal meets its specification, not that parents can use the instalment plan. Ask a few parents to try it, or watch support calls after release.

D: testing is context dependent. A hospital app and a school fee portal differ in users, data, regulation and risk; build the checklist from this product's risks.

E: exhaustive testing is impossible. 12 × 4 × 10 × 5 = 2,400 combinations; at five minutes per payment that is 200 hours. Use pairwise testing for the combinations, boundary values for the instalment count (0, 1, 10 and 11) and extra depth for the riskiest discount rules.

F: testing shows the presence, not the absence of defects. Tell the school what was tested, what is still open, what was not tested and the remaining risk.

G: defects cluster together. Check the defect log: if fee calculation and refunds held most defects in earlier releases, give them more of the time and keep a lighter check on the other modules.

Frequently asked questions

Are the seven principles rules I must follow?

No. The syllabus calls them general guidelines that apply to all testing; they are not steps or obligations. Use them to reason about your decisions and to explain them to others; what you actually do still depends on the context, which is principle 6 itself.

Is "tests wear out" the same as the pesticide paradox?

Yes. ISTQB CTFL v4.0 uses the name "tests wear out"; older syllabus versions and many articles call the same idea the pesticide paradox. The syllabus also notes that repeating the same tests can be beneficial in some cases, for example in automated regression testing, whose job is to show that nothing that worked has broken.

If defects cluster, should I test only the cluster?

No. Clusters tell you where to add depth, not where to stop. A new feature, a rewrite or a new integration can create a cluster elsewhere, so keep a lighter level of testing across the product and update your picture of the clusters every release.

Does early testing mean testing before there is any code?

Partly. Static testing, such as reviews of requirements, designs and code, can start as soon as a work product exists, and test analysis and design can start from the test basis. Dynamic testing starts as soon as there is something to run, such as a single component. The aim is to find each defect as close as possible to where it was introduced.

References

Practise with Mutqan tools

Score features by likelihood and impact, then generate a prioritised risk-based test plan.

Test Design

Go deeper

Your progress on this topic

Part of the QA Roadmap