2.1 Introduction2.1.1 Control Flow Testing Theory2.1.2 Building Control Flow Graphs2.1.3 Statement Coverage2.1.4 Decision Coverage2.1.5 Loop Coverage2.1.6 Hexadecimal Converter Exercise2.1.7 Hexadecimal Converter Exercise Debrief2.2 Condition Coverage2.3 Decision Condition Coverage2.4 Modified Condition/Decision Coverage (MC/DC)2.4.1 Complicating Issues: Short-Circuiting2.4.2 Complicating Issues: Coupling2.5 Multiple Condition Coverage2.5.1 Control Flow Exercise2.5.2 Control Flow Exercise Debrief1. Determine the tests required for decision condition coverage.2. Determine the total number of tests required to achieve MC/DC coverage (assuming no short-circuiting) and define them.3. Determine the total number of tests needed for multiple condition coverage.4. If the compiler is set to short-circuit, which of those tests are actually needed?2.6 Path Testing2.6.1 Path Testing via Flow Graphs2.6.2 Basis Path Testing2.6.3 Cyclomatic Complexity Exercise2.6.4 Cyclomatic Complexity Exercise Debrief2.7 API Testing2.8 Selecting a Structure-Based TechniqueStructure-Based Testing Exercise2.8.1 Structure-Based Testing Exercise Debrief1. How many test cases are needed for basis path coverage?2. If we wanted to test this module to the level of multiple condition coverage (ignoring the possibility of short-circuiting), how many test cases would we need?3. If this code were in a system that was subject to FAA/DO178C and was rated at Level A criticality, how many test cases would be needed for the first if() statement alone?4. To achieve only statement coverage, how many test cases would be needed?2.9 A Final Word on Structural Testing2.10 Sample Exam Questions