top of page

What are the 7 Testing principles?


ISTQB definition:

According to International Software Testing Qualification Board, there are seven principles that have been observed over the last 40+ years and should be considered when developing the testing strategy for a software project/product. These principles, while not always understood or noticed, are in action on most if not all projects. Knowing how to spot these principles, and how to take advantage of them, will make you a better tester.

There are:

1. Testing shows the presence of defects, not their absence:

Testing can show that defects are present, but cannot prove that there are no defects;

2. Exhaustive testing is impossible

Testing everything (all combinations of inputs and preconditions) is not feasible except for trivial cases;

3. Early testing saves time and money To find defects early, both static and dynamic test activities should be started as early as possible in the software development life cycle;

4. Defects cluster together A small number of modules usually contains most of the defects discovered during pre-release testing, or they are responsible for most of the operational failures;

5. Beware of the pesticide paradox If the same tests are repeated over and over again, eventually these tests no longer find any new defects;

6. Testing is context dependent Testing is done differently in different contexts;

7. Absence of errors is a fallacy Some organizations expect that testers can run all possible tests and find all possible defects, but Principles 2 and 1, respectively, tell us that this is impossible.


Human language:

1. The principle one is testing shows the presence of defects, not their absence.

It means that the testing process does not confirm that any software is completely correct and completely devoid of issues. Testing helps greatly reduce the number of undiscovered defects hiding in software, but finding and resolving these issues is not itself proof that the software or system is 100% issue-free;


2. Exhaustive testing is impossible It means that testing all possible scenarios (all combinations of preconditions and inputs) is not feasible. It is a simple fact that exhaustive testing would literally take an unlimited amount of effort. So instead of going ahead with exhaustive testing, we can rather use the risks and priorities to focus testing efforts;


3. Early testing saves time and money It means that the testing should start as early as possible in the Software Development Life Cycle. So that any defects in the requirements or design phase are captured in the early stages. It is much cheaper to fix a Defect in the early stages of testing;


4. Defects cluster together This is the idea that certain components or modules of software usually contain the most number of issues, or are responsible for most operational failures. Testing, therefore, should be focused on these areas. This is because defects are not evenly spread in a system and are clustered. In other words, most defects found during testing are usually in a small number of modules;


5. Beware of the pesticide paradox. This is based on the theory that when you use pesticides repeatedly on crops, insects will eventually build up immunity, rendering it ineffective. Similarly, with testing, if the same tests are run continuously then – while they might confirm the software is working – eventually they will fail to find new issues;


6. Testing is context dependent It means that each type of software system is tested differently. Of course, every application goes through a defined testing process, however, the testing approach may vary based on the application type. Various methodologies, techniques, and types of testing are used depending on the nature of an application;


7. Absence of errors is a fallacy It means that If your software or system is unusable (or does not fulfill users’ wishes) then it does not matter how many defects are found and fixed – it is still unusable. So in this sense, it is irrelevant how error-free your system is. If the usability does not match business requirements, then it has failed, despite having a few bugs.

Conclusion:

So, if you are asked at an interview: What are the 7 Testing principles? The best way to answer is: The 7 Testing principles are:

  • Testing shows the presence of defects, not their absence;

  • Exhaustive testing is impossible;

  • Early testing saves time and money;

  • Defects cluster together;

  • Beware of the pesticide paradox;

  • Testing is context dependent;

  • The absence of errors is a fallacy.

745 views

Recent Posts

See All

© 2023 by Mark Shrike

bottom of page