7 principles of software
development testing.

Adela Cirocka QA Engineer

Efficient and cost-effective software development testing is essential in delivering high-quality products to end-users. Adhering to the 7 principles of software development testing can result in improved testing performance and reduced costs. These principles provide guidance to testers and prevent logical mistakes during the testing process.


1. Testing Shows The Presence Of Defects, Not Their Absence

A testing team’s objective is to confirm that products/applications can meet end-user needs and business requirements, not to prove they are defect-free. ๐Ÿ’ป๐Ÿ” In software testing, various testing types and methodologies are deployed to continuously search for and reveal hidden defects.

2. Exhaustive Testing Is Impossible

It would require an unlimited effort and fall outside the project timeline, so specific techniques are prioritized to test important functions based on risk assessment. Identifying crucial functions to test is a key skill for a testing expert. ๐Ÿงช๐Ÿ•น๏ธ

3. Early Testing Saves Time And Money

๐Ÿ’ป The testing process should begin at the earliest stage possible to detect defects and errors quickly, thus limiting issues found in later stages and saving money. ๐Ÿ’ผ Generally speaking, a start should be made once the requirements of the test have been defined.

4. Defects Cluster Together

During software testing, it is often observed that the majority of defects are related to a small number of modules. This is commonly referred to as the Pareto Principle where 80% of the defects can be found in 20% of the modules being tested. ๐Ÿ”Ž๏ธ By focusing on these critical areas, testers can efficiently locate and resolve defects. ๐Ÿ˜Ž๐Ÿ’ผ

5. Beware Of The Pesticide Paradox

This testing principle of “testing to exhaustion” highlights that repetitive testing can become ineffective in finding new defects. To combat this, testers must constantly revise their test cases. To maintain maximum efficiency, experienced testing teams will vary their techniques and approach, introducing new modifications and scenarios. ๐Ÿ”๐Ÿ”ง

6. Testing Is Context Dependent

Testing depends heavily on context and the approach must be tailored to the subject being tested. For instance, an application for the cruise industry will differ vastly from one for the insurance industry. ๐Ÿ’ป๐Ÿ›ณ๏ธ๐Ÿ’ผ

7. Absence-Of-Errors Is A Fallacy

Software that has been tested and found to be 99% bug-free can still be unusable. This is often due to the system being tested for the wrong requirement, which makes identifying and rectifying these errors virtually useless if the system does not fulfill the requirements of the end user. ๐Ÿ”Ž๐Ÿงช

Based on 7 Principles of Software Testing by International Software Testing Qualifications Board