Code coverage analysis is the process of
Finding areas of a program not exercised by a set of test cases;
Creating additional test cases to increase coverage;
Determining a quantitative measure of code coverage, which is an indirect measure of quality.
Code coverage analysis cannot identify missing code, that is, missing functionality, which is why structural testing methods should not be used as the only testing technique. Structural testing is a supplement to behavioral testing, not a substitute for it.
There are many structural coverage metrics (and thus testing techniques), which include
Statement coverage
Decision coverage
Condition coverage
Multiple condition coverage
Condition/decision coverage
Modified condition/decision coverage
Path coverage
Each coverage metric has pros and cons. BullseyeCoverage implements condition and decision coverage and thus has the advantage of simplicity without shortcomings from a certain metric. For more information about coverage metrics and testing techniques, see the following resources:
The Complete Guide to Software Testing, Second Edition, Bill Hetzel, Wiley, 1988
Software Testing Techniques, Second Edition, Boris Beizer, Van Nostrand Reinhold, 1990
S60 Smartphone Quality Assurance, Saila Laitinen, Wiley, 2006
Code Coverage Analysis paper available on the BullseyeCoverage Web site