Cyclomatic complexity is a software metric used to measure the complexity of a program based on the number of linearly independent paths. It is calculated as the number of edges - nodes + 2 in the program's control flow graph. Higher cyclomatic complexity indicates a more complex program that is likely more error-prone. Testing seeks to determine the required quality standard and strategy before planning specific unit, integration, and system tests. Factors considered in test planning include prioritizing what to test based on damage severity and risk levels, determining test sources, who will perform the tests, where to conduct them, and when to terminate testing. The results are documented in a software test plan.