7 Principles of Software Testing
3 min read
It is important that you achieve optimum test results while conducting software testing without deviating from the goal. For that, you need to stick to some basic testing principles to determine that you are following the right strategy for testing. These are the principles that have been collated and established by the ISTQB as testing and software development has evolved over the years, and are recognized as the absolute core of testing. Here are the common seven testing principles that are widely practiced in the software industry:
1- Testing shows a presence of defects, not their absence
The goal of software testing is to make the software fail. Software testing reduces the presence of defects. Software Testing reduces the probability of undiscovered defects remaining in the software but even if no defects are found, it is not a proof of correctness. Even multiple testing can never ensure that software is 100% bug-free. Testing can reduce the number of defects but not remove all defects.
2- Exhaustive Testing is Not Possible
It is not possible to test all the functionalities with all valid and invalid combinations of data during actual testing. Instead of this approach, testing of a few combinations is considered based on priority using different techniques.
For Example, if you have an input field that accepts alphabets (name), Imagine how many names would test, it is not possible to test all combinations for each input type.
3- Early Testing
To find the defect in the software, early test activity shall be started. The defect detected in the early phases of SDLC will be very less expensive. For better performance of software, software testing will start at the initial phase. i.e. testing will perform at the requirement analysis phase. the cost required for fixing a defect found during the Requirement Analysis is less and it goes on increasing as we move towards the Testing or the Maintenance phase.
4- Defect Clustering
Defect Clustering states that a small number of modules contain most of the defects detected. This is the application of the Pareto Principle to software testing: approximately 80% of the problems are found in 20% of the modules.
5- Testing is context-dependent
The testing approach depends on the context of the software developed. Different types of software need to perform different types of testing. For example, The testing of the e-commerce site is different from the testing of the Android application.
6- Pesticide paradox
Repeating the same test cases with the same test data, again and again, will not find new bugs. So it is necessary to review the test cases and add or update test cases to find new bugs.
7- Absence of errors fallacy
If a built software is 99% bug-free but does not follow the user requirement then it is unusable. It is not only necessary that software is 99% bug-free but it is also mandatory to fulfill all the customer requirements. In such cases, even finding defects and fixing them on time would not help as testing is performed on wrong requirements which are not as per the needs of the end-user.
Be Smart And Test Software :)