Skip to content

1.3- 7 test principles

Over the last 50 years, there have been number of testing principles that offer general guidelines but the ISTQB Syllabus covers 7 principles:


**Seven principles**

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

Presence Bugs

Testing can show that defects are present, but it cannot prove that no defects are remaining.

Note

Even when no defects are found during testing, it canĀ“t be proved that software is defect-free. Always exist risks.


Principle 2: Exhaustive testing is impossible

Decision Table

Testing everything (all combinations of inputs and preconditions) is not possible, except for trivial cases.

Rather than attempting to test exhaustively, the effort should be focus on risks analysis, test techniques and priorities.

Note

  • It is not possible to test all possible combinations of data input in most of the circunstances.
  • Exhaustive testing is a test approach in which all possible data combinations are used, including the implicit in the state of the software, so is not feasible.

Principle 3: Early testing saves time and money

The following diagram shows that the relative cost of fixing the defects increase with each project phase.

**Cost of fixing defects**


Principle 4: Defects cluster together

Experience shows that in general, a small number of software modules contains most of the defects discovered during pre-release testing or are responsible for most of the operational failures.

Decision Table

Defects are clustered in modules that are:

  • More complex
  • Larger
  • More prone to changes
  • Have been worked on by many different developers over time

Note

  • 80% of defects come from 20% of the modules (Pareto principle applied to software testing).

Principle 5: Beware of Pesticide paradox

Pesticide Paradox

If the same tests are repeated over and over again, eventually these tests no longer find any new defects.

If the same test cases fail to find any new defects, running the same test cases, again and again, will eventually leave the tester with a false sense of security.(The same apply for regression tests)

Recommendations:

  • Review test cases regularly
  • Add more relevant new test cases to exercise different parts of the software and remove the test cases which are not required.
  • Consider the value of running tests in each regression run. Make sure there is a value-add from the effort.

Principle 6: Testing is context dependent

Success Systems

Testing is done differently in different contexts. For example, safety-critical software is tested differently from e-commerce software.

Recommendations:

  • Same set of testing activities are not applicable for all applications.
  • Testing is done for different applications.
  • Risk must be considered in determining the type of testing that is needed.

Principle 7: Absense-of-error fallacy

Success Systems

It is a mistake to expect that just finding and fixing a large number of defects will ensure the success of a system.


Last update: 2022-08-21