When QA engineers perform software testing, it’s important to reach the best possible results and at the same time not deviate too much from the original goal. To make sure that you comply with the right strategy, you need to follow basic testing principles.
Below we will talk about the 7 most popular and important principles that no software testing should be performed without.
Testing Shows the Presence of Bugs, Not Their Absence
The fundamental purpose of testing is to “teach” software to “break”. Web product testing reduces the number of defects. It also reduces the likelihood that undetected bugs will be left. But even if nothing is found, it won’t be proof of correct performance.
Moreover, the multiple executions of tests will never give a complete guarantee that the software is bug-free. Testing helps reduce the number of bugs but doesn’t eliminate them completely.
Exhaustive Testing Is Impossible
It is never and under no circumstances possible to test all functionality with all permissible and impermissible combinations of information during the actual software testing. Instead of this approach, it is recommended to test the highest-priority combinations using the most diverse methods.
A simple example: we have a text field “name”, which verifies only letters. You can only imagine how many names can be entered – it is simply impossible to test absolutely all combinations of input of this kind of data.
To find a bug in the software, it’s worth starting the testing process as soon as possible. The defect, found at the preliminary stages of software development will cost your company much less. To promote the quality of web products, specialists of software testing companies should start verification at the early stage, which is already at the stage of analyzing customer requirements.
The Process of Bug Clustering
The bug clustering means that a few modules have more than half of the detected bugs. It is a direct rule of Pareto’s law used to check software: about 80% of the bugs are in 20% of the modules.
Testing Depends on the Context
The approach to testing depends on the context of the software being developed. Different types of testing should be performed for different types of web products. For example, testing an e-commerce site is fundamentally different from testing a mobile product.
The Paradox of the Pesticide
Running the same tests over and over again, you will find that they find fewer and fewer new bugs. As the system evolves, many of the previously found defects are fixed and old test cases no longer work.
To overcome this paradox, it is necessary to periodically make changes to the test suites used, review and adjust them so that they correspond to the new state of the system, and allow finding as many defects as possible.
The Myth about the Absence of Errors
The fact that testing has not found any defects does not mean that the program is ready for release. Finding and fixing defects will not be important if the system is inconvenient to use and does not meet the expectations and requirements of the user.
And a few more important principles:
- testing should be carried out by independent specialists;
- involve the best professionals;
- test both positive and negative scenarios;
- do not allow changes in the product during testing;
- indicate the expected result of the tests.