Achieved when every branch from a node is executed at least once. You need at least one true and one false evaluation for each predicate. This can be achieved with D+1 paths in a control flow graph with D 2-way branching nodes and no loops.
Problems
- Short circuit evaluation means that many predicates might not be evaluated
- A compound predicate is treated as a single statement.
- If there are n clauses, there are combinations but only 2 are tested
- Only a subset of all entry-exit paths are tested