1. Testing Shows the Presence of Defects
Testing tends to show the defects in the system. But it doesn’t guarantee that the system is defect-free.
2. Exhaustive Testing Is Not Possible
Testing done with all the possible inputs and their combination, as well as taking into consideration the entire preconditions, Is Not POSSIBLE.
3. Testing Activities Should Start As Early As Possible
When Testing activities are started early in the software development phase, defects are found at their primitive stage.
4. Defects Tend To Cluster Together
If one finds some defects in a particular place then there are maximum possibilities that more defects will be hidden there. Defects tend to cluster.
5. The Pesticide Paradox
This principle states that the testing should not be static rather dynamic. If the testing is static, it will lose its effectiveness eventually. The tester must keep modifying the test cases/scripts as well as test data while implementing test cycles.
6. Test Is Context Dependent
Testing is always context dependent. No two systems should be tested in a same way. You cannot test a safety-critical application, ecommerce application in same manner. Test process should be adaptive of the type of the system as well as the levels of the system.
7. The Fallacy of Assuming That No Failures Means a Useful System
Testing finds defects and those defects get solved, but this doesn’t mean that the system is foolproof or up to the mark.