7 Software Testing Principles

A Complete Guide

Software Testing emphasizes the presence of defects rather than absence of defects. Although software testing can identify defects, it cannot ensure that software is defect-free.

1. Testing Shows the Presence of Defects

2. Exhaustive Testing is Impossible

The principle states that a software cannot be tested at every test case. Continuing to test all possible scenarios will increase the execution time and cost of the software.

3. Early Testing

Testing should be done early in the development process. Amending issues at initial stages of project is easier and cheaper than at the end, which results in delays and overruns.

4. Defect Clustering

As per this principle, 80% of issues arise from 20% of modules, and remaining 20% from 80% of modules. So, we must prioritize testing on 20% of modules where 80% of bugs occur.

5. Pesticide Paradox

Regularly reviewing and updating test cases is critical for overcoming the Pesticide Paradox. As testers, we must always seek ways to improve our test methods.

6. Testing is Context-Dependent

It implies that testing depends on context of software developed. Each application must undergo a defined testing process, but the approach may differ depending on the application.

7. Absence of Error Fallacy

As software developers, we need to make sure our softwares are not only 99% bug-free, but also meets business and user requirements otherwise it will end up being unusable.

Why is it important to follow  Software Testing Principles?