A tester identifies that a system crashes only when a specific, rare combination of inputs occurs. Which testing principle is best illustrated by this observation?
Trap 1: Testing proves the absence of defects.
Testing can never prove that a system is completely free of defects. Even if a specific path is tested, other combinations or environmental factors might trigger a crash. This principle is a fundamental misconception in testing, as comprehensive testing is impossible for complex systems, meaning some issues will always persist.
Trap 2: Defect clustering.
Defect clustering refers to the phenomenon where most defects are found in a small number of modules. While this crash might be in a clustered area, the scenario focuses on the identification of a defect through testing rather than the distribution of defects across the entire software application codebase.
Trap 3: Exhaustive testing is feasible.
Exhaustive testing is impossible for most modern systems due to the infinite number of input combinations and logical paths. Attempting to test every possible scenario is not practical or cost-effective. Testers must use risk-based approaches and test design techniques to select a representative subset of test cases.
- A
Testing proves the absence of defects.
Why it fails: Testing can never prove that a system is completely free of defects. Even if a specific path is tested, other combinations or environmental factors might trigger a crash. This principle is a fundamental misconception in testing, as comprehensive testing is impossible for complex systems, meaning some issues will always persist.
- B
Testing shows the presence of defects.
The discovery of a crash confirms that defects exist within the application. Testing aims to reveal these issues so they can be addressed. By exercising specific input combinations, testers provide evidence of failure, which is the primary objective of testing activities intended to improve software quality and reliability.
- C
Defect clustering.
Why it fails: Defect clustering refers to the phenomenon where most defects are found in a small number of modules. While this crash might be in a clustered area, the scenario focuses on the identification of a defect through testing rather than the distribution of defects across the entire software application codebase.
- D
Exhaustive testing is feasible.
Why it fails: Exhaustive testing is impossible for most modern systems due to the infinite number of input combinations and logical paths. Attempting to test every possible scenario is not practical or cost-effective. Testers must use risk-based approaches and test design techniques to select a representative subset of test cases.