Software testing is an important activity. It provides certain level of confidence with the product. That level of confidence achieved through a series of testing activities. Software testing activities is a procedures that are executed to catch bugs, errors, defects as early as possible, ensure that the product meets acceptance criteria, and the completeness of specifications in accordance with business, user, and product requirements.
To run that procedures, we need to have a strategy, so our testing activities will not take too long time but still optimum enough to reach the goal.
How can we develop a good strategy? Or Base on what we develop that strategy? One of the rules that have been proven to be used as a basis for building strategy is 7 Principles Of Software Testing.
In this article, we’ll take a look at what is 7 Principles Of Software Testing and its component, one-by-one.
7 Principles Of Software Testing
1. Testing shows presence of defects
The purpose of software testing is to reduce bugs occurrence in software using various methods and techniques. By doing series of testing procedures, it detect the presence of bugs or defects . Software testing can only ensure that bugs are present, not those that are absent. Even after we execute test endlessly, it is impossible to be sure that the software is completely bugs-free.
2. Exhaustive testing is not possible
It is a practice of testing a software using all possible inputs and preconditions. It is very difficult to test all modules and their functionality with valid and invalid combinations of input data throughout the testing process.
Imagine an input field that accept age information, we need to execute test using 1, 2, 3, 4, 5, and so on. And don’t forget to also test it using invalid value, such as a-z, A-Z. It is a very time consuming procedure and very not cost effective.
3. Early testing
Testing should start as early as possible so that any possible defect can be captured in early stage. It is less costly to fix defect in the beginning. But how early it should be performed? Once we get the requirement.
4. Defect clustering
Defect clustering state that the most bugs will detected in a small number of modules. Usually it follows the Pareto 20/80 law. About 80% bugs will be found in about 20% of modules.
5. Pesticide paradox
Imagine a farmer that are using the same type and doses of pesticide to spray bugs, again and again repetitively, eventually bugs will develop immunity to that kind of pesticide. The same thing happened to software testing. If the same methods and approaches are used repetitively, the method will be useless to catch a new bugs.
To overcome this, the test case needs to be evaluated and replaced periodically. Also, tester need to be more creative and run the test outside the test case.
6. Testing is context dependent
Software testing is not a one-for-all scenarios. It is important to design tests based on the context of software development. Different strategies, methods, and kinds of testing are utilized relying upon the idea of an application. For example, software for the aviation industry requires more detailed, thorough and thorough testing than the company’s website. And e-commerce page will require different test than login form.
7. Absence of errors fallacy
Although software is 99% bug-free, it is still possible that the software cannot be used at all. It is still important that the software must be practical and able to accomplish the client’s requirements and needs.
Conclusion
Based on what we have learned together, 7 Principles Of Software Testing can help us gain greater efficiency, focus, and also improve our strategy for designing testing scenario.
Follow me on
Facebook: https://www.facebook.com/mydoqa/
Instagram: https://www.instagram.com/mydoqa/
Twitter: https://twitter.com/MydoQa