Impossibility of Complete Testing
This lesson describes in more details why complete testing is virtually impossible. Find the document about the topic mentioned in the lesson in the Resources section.
Learning Objectives
The section discusses the impossibility of complete software testing due to the large number of test cases required. It also explores different testing strategies and the challenges associated with testing variables, user input, and invalid input. Understand the need to prioritize and optimize testing efforts to achieve thoroughness.
Â
Core Topics and Takeaways
Distinct tests
What would it mean to test everything
Human inputs
Timeouts
Input variables
Extreme inputs
Video Highlights
Topic | Key Concepts | Video Location |
---|---|---|
This section discusses the impossibility of complete testing and introduces test estimation. |
| 00:01 |
Doug Hoffman illustrated the incompleteness of testing by running all four billion inputs into a function on a super fast computer, and it only took six minutes. |
| 02:09 |
Finding bugs in software cannot be done through exhaustive testing due to the enormous number of possible tests. |
| 04:19 |
Underflows, easter eggs, and invalid inputs can cause failures in programs, but testing for all possibilities is impossible. |
| 06:31 |
Learning Highlights
Software testing foundations, addressing the impossibility of achieving complete testing due to the vast number of variables, combinations, and user interactions. Emphasizing the limitations of exhaustive testing, the example of testing a function reading a 32-bit word illustrates the challenges. Doug Hoffman's case study on testing the MassPar computer reveals that even billions of tests may not be exhaustive, and overlooking certain inputs, unexpected user behaviors, or easter eggs can lead to critical issues. The lecture stresses the need for strategic, representative testing and acknowledges the impracticality of testing every possible scenario.
Read more about the impossibility of complete testing here.
Â
Â
Â