Information Technology Reference
In-Depth Information
• Regression testing
• Requirements inspections
• Requirements modeling
• Risk-based testing
• Security testing
• Subroutine testing
• Supply-chain testing
• System testing
• Unit testing
• Usability testing
It is an interesting phenomenon that all of the problems discussed in this
chapter occurred even after several kinds of testing. A synergistic combination of
pre-test inspections, pre-test static analysis, formal mathematical testing, and risk-
based testing with certified test personnel could probably have eliminated almost
all of the failures discussed here.
Note that the failures and problems discussed here are only the tip of the ice-
berg. There are thousands of similar problems, and they occur almost every day.
Some forms of failure appear to be increasing in frequency and perhaps in severity.
For example, automotive recalls due to software problems occur often for every
major manufacturer. There are also recalls for many other kinds of equipment with
computer controls.
1962: Failure of the Mariner 1 Navigation Software
The Mariner 1 probe for Venus went off course 293 seconds after liftoff. The ap-
parent reason was that a superscript bar was missing in one line of code, which
caused excessive deviations in control patterns.
Lessons learned: The primary lesson from this failure is that a single character in
a single line of code can cause serious problems with software.
Problem avoidance: The problem might have been found via pair programming,
code inspections, requirements modeling, or static analysis. Neither requirements
modeling nor static analysis existed in 1962, but in today's world, either method
would almost certainly have found such an obvious syntactical error.
Finding the problem via testing should have occurred but obviously did not. A
test sequence that included control responses to inputs should have done the job.
Search WWH ::




Custom Search