In this tutorial, we will learn about Software Testing Principles. These principles give an overview of key testing practices.
Software Testing Principles
Let’s first outline the fundamental software testing principles. The principles are as follows:
- Testing shows only the presence of defects, not their absence.
- Exhaustive Testing is not possible
- Early Testing saves money
- Defect Clustering
- Pesticide Paradox
- Testing is Context-dependent
- The absence of errors is a fallacy
Testing shows only the presence of defects
Testing can only show the presence of the defects or bugs in the software under test. Software testing cannot prove that the software product is 100% defect-free. Testing increases the probability of finding undiscovered bugs in the product, but cannot show the absence of bugs in the product.
Exhaustive Testing is not possible
Testing everything is practically impossible. Testing all combinations and test scenarios is not possible. In the real-world, Agile frameworks build fast and ship often within 2 – 4 weeks of time. Testing teams increase test coverage of main functionality and automation rate to reduce the software risk.
Early Testing saves money
Software defects that are identified early in the product life cycle are easy to fix and take less cost fixing them. The main and critical functionality of the product should be tested first.
This principle states that the 80-20 Pareto rule can be applied for the defects. 80 percent of the bugs can be found in 20 percent of the modules. The software testing team should concentrate on testing these modules.
In agriculture and farming, if we apply the same pesticide over and over again the insects would build immunity to the medicine. In the same way, if we repeat the same tests over and over again, the test will not find new defects in the product. It’s important to review the test cases and test scenarios regularly.
Software testing is context-dependent. Different applications need to be tested differently. Testing approach, strategies, tools vary from application to application.
The absence of errors is a fallacy
The software product should meet end-users expectations, requirements, and fitness of use. If the software doesn’t fit the customer’s use, then it is irrelevant how many bugs are discovered and fixed by the software team. It’s important to take end users’ feedback so that the software product meets users’ expectations. Even if the product is error-free, it’s not worth it if it’s not usable for the customer.
Software Testing Tutorials: