Software Testing Principles – Brief
Explanation
1. Testing Shows Presence of Defects
Testing helps reveal defects in software, but it cannot prove the software is completely
error-free. The main aim is to find as many defects as possible before the release.
2. Exhaustive Testing is Impossible
It is not practical to test all possible inputs and scenarios. Instead, testers focus on risk-
based and priority testing to cover important areas.
3. Early Testing Saves Time and Cost
The earlier a defect is found in the development cycle, the cheaper it is to fix. Testing should
begin from the requirement and design stages.
4. Defect Clustering
A few modules often contain the majority of defects. Focusing on these 'hotspot' areas can
increase test efficiency and bug detection.
5. Pesticide Paradox
Repeating the same tests will not find new bugs. Test cases should be reviewed and updated
to uncover different types of defects.
6. Testing is Context Dependent
The approach to testing varies based on the type of application (e.g., web app, safety-critical
system, mobile app). There is no one-size-fits-all strategy.
7. Absence-of-Errors Fallacy
Even if the software is bug-free, it is not useful unless it meets the business and user needs.
Functional correctness alone does not ensure success.