7 testing principles
- Testing Shows presence of defects
- Exhaustive testing is impossible
- Early Testing
- Defect Clustering
- Pesticide paradox
- Testing context dependent
- Absence of error fallacy
- Testing Shows the presence of defects – but not the absence- as we cannot make a statement at any point of time, we can say there are no more defects – difference constraints come in place.
- Exhaustive testing is impossible – All permutation combinations of test cases are not possible as it may lead to infinite combinations. we do not have enough time or resources to complete all on time /schedule.
- Early testing – Bring testers while Work products are being started like Business requirements and specs- if the defects found on those – it considered cheaper on the life cycle model – starting with draft reviews – it helps the project to be more successful
- Defect clustering– in line with the defect density – defects in general cannot be assumed to be equally distributes as 2 defects for 10 modules each- could be 9 modules- may be shown more caution and less defect and 10th module not taken care much so may have one hundred defects. so all modules to be seen equally! more test cases added to mark on the defect density
- Pesticide paradox – running same test case repeatedly is waste of time- so improvise the test cases often and if required add new test case or widen coverage based on the current understand- requirements may have changed slightly, technology may have changed. The current test cases may be outdated, to find defects.
- Testing context dependent – online shopping cart vs safety critical system or an insurance app all 3 have different approaches or coverages /density – by which effort is proportional accordingly.
- Absence of error is a fallacy – in general many test cases are run few defects found and got fixed, it’s not useful if the product is not useful for the end user- Requirements should be met by the developer so the product us ready for the launch! Test only stable softwares.