The software development process and the resulting product are so complex that no error-detecting approach will ever be able to produce error-free software. The test coverage analyzer was a wonderful tool for measuring how well-tested a piece of software. First, the software being tested is instrumented so that the tool would capture which of the software's logic segments had been executed. Then a suite of test cases are run against that software and learned which segments had been executed, and how many times. The Test Coverage Analyzer concept, in whatever form it takes today, is still important and useful. And so are all the other error- removal processes we've developed over the years. But it will take a pretty elaborate combination of testing approaches to even let us produce truly reliable software.