Sparround

Testing fundamentals & the 7 principles

Software testing is the process of evaluating a software product's quality and finding defects. Testing is not only bug hunting: it provides information about the product, reduces risk and supports decision making.

QA (Quality Assurance), QC (Quality Control) and Testing are different concepts:

  • QA — focuses on processes, prevents defects
  • QC — focuses on the product, checks quality
  • Testing — is part of QC, detects defects
PrincipleMeaning
1. Testing shows presence of defectsTesting can find defects but cannot prove their absence
2. Exhaustive testing is impossibleYou cannot test everything — risk-based selection is needed
3. Early testingThe earlier you start, the cheaper defects are to fix
4. Defect clusteringMost defects cluster in a few modules (Pareto)
5. Pesticide paradoxRepeating the same tests stops finding new bugs — tests must evolve
6. Testing is context dependentA banking system and a mobile game are not tested the same way
7. Absence-of-errors fallacyA bug-free system that misses user needs still fails

In interviews, explaining principles with real examples beats reciting them. E.g.: "Our regression suite had gone stale and stopped catching new bugs — a real case of the pesticide paradox."

📚 Sources and documentation

  • ISTQB Glossaryofficialglossary.istqb.org

    The official definitions — the reference point when a term is disputed in an interview.