DEV Community

Qaiser Abbas
Qaiser Abbas

Posted on

7 Principles of Software Testing

According to International Software Testing Qualification Board there are seven principles that should be considered when developing the testing strategy for a software product.

1) Testing shows presence of defects

By testing you can show presence of defects in a product but you can never prove that the product under test is defect free.

2) Exhaustive testing is impossible

Testing all possible scenarios (all combinations of preconditions and inputs) is not feasible. Techniques like risk analysis should be used to prioritize and focus the testing efforts.

3) Early testing

The testing activities should be started as early as possible during the software or system development life cycle. The cost to fix a bug increases exponentially if the bug is found in a later phase of the development life cycle.

4) Defect clustering

In a project, a small number of the module can contain most of the defects. Pareto Principle to software testing state that 80% of software defect comes from 20% of modules.

5) Pesticide paradox

The test cases should be reviewed and updated on regular basis. New tests should be developed to exercise new parts of the software or system. If this is not done and the same tests are repeated again and again eventually no new bugs will be found, but this does not mean that the system is defect free. Testing should focus on continuous improvement during the complete development life cycle.

6) Testing is context dependent

The testing approach depends on the context of the software developed. Different types of software need to perform different types of testing. For example, The testing of the e-commerce site is different from the testing of the Android application.

7) Absence of errors fallacy

If a systems does not fulfill the user needs and expectations then having a bug free system does not help. Functional testing and a deep understanding of the customer expectations is a must during the development life cycle.

Discussion (0)