The 7 Testing Principles

the-7-testing-principles

Principles

There are a number of testing principles offering general guidelines applicable to all testing. The ISTQB Certified Tester Foundation Level Syllabus describes 7 such principles.

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

Testing can show that defects are present in the test object, but cannot prove that there are no defects. Testing reduces the probability of defects remaining undiscovered in the test object, but even if no defects are found, testing cannot prove test object correctness. 

2. Exhaustive testing is impossible.

Testing everything is not feasible except in trivial cases. Rather than attempting to test exhaustively, test technique, test case prioritization, and risk-based testing, should be used to focus test efforts. 

3. Early testing saves time and money.

Defects that are removed early in the process will not cause subsequent defects in derived work products. The cost of quality will be reduced since fewer failures will occur later in the software development lifecycle. To find defects early, both static testing and dynamic testing should be started as early as possible. 

4. Defects cluster together.

A small number of system components usually contain most of the defects discovered or are responsible for most of the operational failures. This phenomenon is an illustration of the Pareto principle. Predicted defect clusters, and actual defect clusters observed during testing or in operation, are an important input for risk-based testing.

5. Tests wear out.

If the same tests are repeated many times, they become increasingly ineffective in detecting new defects. To overcome this effect, existing tests and test data may need to be modified, and new tests may need to be written. However, in some cases, repeating the same tests can have a beneficial outcome, e.g., in automated regression testing. 

6. Testing is context dependent.

There is no single universally applicable approach to testing. Testing is done differently in different contexts.

7. Absence-of-defects fallacy

It is a misconception to expect that software verification will ensure the success of a system. Thoroughly testing all the specified requirements and fixing all the defects found could still produce a system that does not fulfill the users’ needs and expectations, that does not help in achieving the customer’s business goals, and that is inferior compared to other competing systems. In addition to verification, validation should also be carried out.

Summary

Software testing might sound trivial at first but it a complex field similarly to software development. At Fuserwise we invest heavily into our education to stay at the forefront of industry standards and best practices that we continue to apply and adjust to our client’s needs. See how our solutions enable a new way of software testing that can elevate your software’s quality.

Explore more: