Please enable JavaScript.
Coggle requires JavaScript to display documents.
7 Software Testing Principles (1) Exhaustive testing is not possible …
7 Software Testing Principles
1) Exhaustive testing is not possible
Exhaustive testing would inevitably consume time and money. Testing should be isolated based on risk asessment of the application - e.g. what is the most likely part of the application to fail - data/backoffice integrations?
2) Defect clustering
From point 1, Pareto principle dictates that 80% of the defects will be found in 20 percent of an applications modules.
3) Pesticide Paradox
Repetitive use of the same test cases will eventually result in 100% pass rate the same way immunity is built up by pests.
Test cases should adapt to change of the application.
The exception here is regression testing where existing use cases should be automated to some extent.
4) Testing shows presence of defects
By its very nature, it will discover defects, for every defect scope and impact should be assessed so that heavy defect impacted software is not restricted from going live. E.g. Blocker, Major, Minor, Trivial
5) Absence of Error
It is possible that software which is 99% bug-free is still unusable. This can be the case if the system is tested thoroughly for the wrong requirement.
Software testing isn't just finding defects, but it is also to check that the software addresses the business needs.
Absence of Error is a fallacy i.e.n finding and fixing defects does not help if the system build is unusable and does not fulfill the user's needs and requirements.
To solve this problem, the next principle of testing early should be employed.
6) Early Testing
Testign should start as early as possible in the Software Development Lifecycle. This will reveal defects in the requirements or design in the early stages where it is generally cheaper (in terms of dev time cost) to fix where there are less nested dependencies.
Defects can also be tracked across release candidates to assist developers in identifying possible branches where defects have been introduced to the code.
7) testing is context dependent
Simply put - all applications are different, test them accordingly.
V Model Waterfall extension of testing principles:
http://www.guru99.com/software-testing-lifecycle.html