7 principles of software
development testing.
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