Software Testing Principal
Principal of Software Testing
Software testing is the process of evaluating and application's quality. However, this is a creative and intellectual work. Testing principles is a kind of guide for testing in general.
Software testing is a process of executing a program with the aim of finding the error. To make our software perform well it should be error free. If testing is done successfully it will remove all the errors from the software.
Here are 7 basic principles of Software Testing every professional Software tester and QA professionals need to know.
7 Principles of Software Testing
- Testing shows presence of defects
- Exhaustive testing is not possible
- Early testing
- Defect clustering
- Pesticide paradox
- Testing is context dependent
- Absence of errors fallacy
1. Testing shows presence of defects: Every application is released into production after different teams tested it. You never hear from any professional software tester that there is no defect in one software or another. And this is OK, and testing cannot prove that the software is bug-free. Testing is about the presence of defects and not about it's absence.
2. Exhaustive testing is impossible: First of all, let's be clear what exhaustive testing is? It is such a type of testing where all possible combinations of scenarios and use/test cases are used for testing. Just imagine how many combinations would appear. Most likely, project timelines do not allow testing of such numbers of combinations, and it is too expensive and too long. So this means that exhaustive testing is practically not possible.
3. Early testing: The sooner bugs are detected, the cheaper it will be to fix them. In other words, conducting early testing reduces the cost of fixing defects.
4. Defect clustering: Usually, the main errors found during testing, which cause the program to fail are located in one module. That's why testing focuses on areas of intense concentration of defects by modules. So a small module can contain most of the bugs.
5. Pesticide paradox: The test module must be constantly and systematically corrected because if the same test module is applied to the same system multiple times, it will eventually fail to find bugs.
6. Testing is context dependent: Different methods must test each software product.
7. Absence of error - fallacy: If the product does not meet the client's requirements and needs, the search and correction of bugs are not sufficient.
Read more about these things in separate
- Software testing Tutorial
- What is Software Testing
- Types of Software Testing
- V-Model in Software Testing
- Software Testing Life Cycle
- Software Testing Principles
- Levels of Software Testing
- Manual Testing
- Automation Testing
- White Box Testing
- Black Box Testing
- Gray Box Testing
- Manual vs Automation Testing
- White Box vs Black Box