Testing, especially when doing test driven developement, is only effective if the tests cover 100% of the code, i.e. running all tests means all of the production code has been executed. But coverage testing is not so easy as it seems. One can give simplistic examples which have 100% test coverage but still are buggy. The reason is simple: branching (and combination of paths) can produce a plethora of possibilities. But once every line of code is executed once, by definition, the coverage is 100%, although not every permutation has been tried. An introduction to this topic can be found in Ned Batchelder’s blog, more at Wikipedia and here.