Control flow testing is a type of software testing that uses program’s control flow as a model. Control flow testing is a structural testing strategy. This testing technique comes under white box testing. For the type of control flow testing, all the structure, design, code and implementation of the software should be known to the testing team.
This type of testing method is often used by developers to test their own code and own implementation as the design, code and the implementation is better known to the developers. This testing method is implemented with the intention to test the logic of the code so that the user requirements can be fulfilled. Its main application is to relate the small programs and segments of the larger programs.
Control Flow Testing Process:
- Control Flow Graph Creation:
From the given source code, a control flow graph is created either manually or by using the software. - Coverage Target:
A coverage target is defined over the control flow graph that includes nodes, edges, paths, branches etc. - Test Case Creation:
Test cases are created using control flow graphs to cover the defined coverage target. - Test Case Execution:
After the creation of test cases over coverage target, further test cases are executed. - Analysis:
Analyze the result and find out whether the program is error free or has some defects.
Advantages of Control flow testing:
- It detects almost half of the defects that are determined during the unit testing.
- It also determines almost one-third of the defects of the whole program.
- It can be performed manually or automated as the control flow graph that is used can be made by hand or by using software also.
Disadvantages of Control flow testing:
- It is difficult to find missing paths if program and the model are done by same person.
- Unlikely to find spurious features.