This is basically where you cover the paths through a program, the actual "logic" of the source code itself.
Example (from Java):
The for loop is one branch of logic that will execute based on whether i is less than a size value from a variable called myAnagram. This is one part of logic to test - just the incrementer. The if loop is another branch of logic testing if a certain string variable contains a certain set of text.
Logic coverage would test each of those paths under different conditions. However, logic coverage also makes sure that the declaration statements (for "temp") are fulfilled correctly and that the "println" method prints out the value of "temp." Thus it is not just the loops, but all the discrete bits of logic of the program.
Does that make sense?
[This message has been edited by JeffNyman (edited 10-05-2001).]