The Seven Principles of Testing

The 7 principles of testing


Software testing is an essential part of the software development process, ensuring that the final product functions correctly and efficiently, meeting all requirements and customer expectations. To conduct software testing effectively and save time and effort in identifying and addressing errors, you can adhere to the following seven fundamental principles of testing.

7 basic principles of testing

1. Testing shows the presence of defects

Testing proves that the product has defects but cannot prove that the product is defect-free. This means that there will always be defects undetected in the software, even if no defects are found, it does not mean that the software is defect-free.


2. Exhaustive testing is impossible

 It is very difficult to test all modules as well as features, combined with all inputs and outputs of the entire system throughout the testing process. Instead of attempting to test everything, identify the importance and priority to test the necessary cases or those with higher risks.

3.Early testing

Testing should begin in the early stages of a project. Detecting errors early can help save costs and time for bug fixes, thereby ensuring the project's progress.

4. Defects clustering

This principle indicates that only a small number of modules contain the majority of detected bugs. If a bug is detected in one module, similar functionality in another module is likely to have bugs as well. This allows testers to identify high-risk, bug-prone modules, helping to focus bug-finding efforts more quickly and efficiently.

5.Pesticide Paradox

In agriculture, if a farmer repeatedly uses the same dose of pesticide, pests will gradually adapt and become "resistant" to it. Similarly, in software testing, repeatedly using the same set of test cases will reduce the likelihood of finding new bugs. It is necessary to regularly update and add new test cases to enhance testing effectiveness.

6.Testing is context dependent 

Testing is dependent on the context of the project. For example, testing an online sales page requires a different approach from testing a book reading application. Since all software is developed differently, applying a one-size-fits-all solution is incorrect. Different approaches, methods, and testing techniques need to be employed depending on the specific requirements.

7. Absence of errors fallacy

A product might not have any bugs and still be unusable. Bugs that have been fixed can also reemerge after some time, or the product may have been tested against incorrect requirements. Therefore, the notion of being "without errors" or "bug-free" is a misconception.



Hau.Vo
....................................
Source: istqb.org

Nhận xét

Bài đăng phổ biến từ blog này

Software testing level

Testing methods - Overview of black-box & gray-box testing