2. List all loop variables
3. Build a table of condition/loop variables
4. Permute data to exercise conditions
5. Specify expected results
Execute every path at least once
Execute both T and F result of each condition
The number of test cases grows geometrically with the degree of coverage