In software engineering, basis path testing, or structured testing,[1] is a white box method for designing test cases. The method analyzes the control-flow graph of a program to find a set of linearly independent paths of execution. The method normally uses McCabe cyclomatic complexity to determine the number of linearly independent paths and then generates test cases for each path thus obtained.[2] Basis path testing guarantees complete branch coverage (all edges of the control-flow graph), but achieves that without covering all possible paths of the control-flow graph – the latter is usually too costly.[3] Basis path testing has been widely used and studied.[4]