Principles of Software Testing
Testing Shows Presence of Defects
- Testing is meant to find problems or bugs in the software, not to prove that there are none. Even if testing doesn’t find any issues, it doesn’t mean the software is perfect. The main goal of testing is to uncover defects, so you know what needs fixing.
Exhaustive Testing is Impossible
- It’s impossible to test everything in a software program because there are too many possible scenarios. You can’t check every combination of inputs, every button click, or every possible user action. Instead, testers focus on the most important and likely areas where issues might occur.
Early Testing
- Testing should start as early as possible in the software development process. The earlier you find a problem, the easier and cheaper it is to fix. Waiting until the end to start testing can lead to bigger issues that are harder to resolve.
Defect Clustering
- Defects often tend to cluster in certain parts of the software. This means that a small number of modules or features might contain the majority of the bugs. Testers pay extra attention to these areas because they are more likely to have issues.
Pesticide Paradox
- Just like how pests can become resistant to the same pesticide over time, the same set of tests can become less effective at finding new bugs if you keep running them. To keep catching new defects, you need to regularly update and change your tests, trying different approaches to uncover hidden problems.
Testing is Context Dependent
- The way you test software depends on what kind of software it is. For example, testing a mobile app is different from testing a financial application. The methods, tools, and focus areas for testing vary depending on the software’s purpose, users, and environment. There’s no one-size-fits-all approach to testing.
Absence-of-Errors Fallacy
- Just because you don’t find any bugs in the software doesn’t mean the software is perfect or meets the user’s needs. It’s possible to have software that is technically error-free but still fails because it doesn’t solve the right problem or isn’t what the customer wanted. Testing should focus not only on finding bugs but also on ensuring the software is useful and valuable to the user.
Module Review
Click to start the definition to term matching quiz
Drag the defintion to the correct term.
Definitions
You can’t check every combination of inputs, every button click, or every possible user action.
Even if testing doesn’t find any issues, it doesn’t mean the software is perfect.
It’s possible to have software that is technically error-free but still fails because it doesn’t solve the right problem or isn’t what the customer wanted.
The same set of tests can become less effective at finding new bugs if you keep running them.
Testers pay extra attention to these areas because they are more likely to have issues.
Waiting until the end to start testing can lead to bigger issues that are harder to resolve.
There’s no one-size-fits-all approach to testing.
Exhaustive Testing is Impossible
Early Testing
Defect Clustering
Absence-of-Errors Fallacy
Testing Shows Presence of Defects
Testing is Context Dependent
Pesticide Paradox
Click to start the multiple choice quiz
Choose from the listed options below.
Score: : 0 / 14 [0.00 %]
Question 1 of 14: Why is exhaustive testing impossible?