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:
Following are the steps involved into the process of control flow testing:
- 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.
Analyze the result and find out whether the program is error free or has some defects.
Control Flow Graph:
Control Flow Graph is a graphical representation of control flow or computation that is done during the execution of the program. Control flow graphs are mostly used in static analysis as well as compiler applications, as they can accurately represent the flow inside of a program unit. Control flow graph was originally developed by Frances E. Allen.
Cyclomatic Complexity is the quantitative measure of the number of linearly independent paths in it. It is a software metric used to describe the complexity of a program. It is computed using the Control Flow Graph of the program.
M = E - N + 2P
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.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Software Engineering | Control Flow Graph (CFG)
- Data Flow Testing
- Numeric Control (NC) and Computer Numeric Control (CNC)
- Beta Testing | Software Testing
- Software Engineering | Differences between Sanity Testing and Smoke Testing
- Software Testing | Endurance Testing
- Software Testing | Dynamic Testing
- Software Testing | Accessibility Testing
- Smoke Testing | Software Testing
- Performance Testing | Software Testing
- Software Testing | Non-functional Testing
- Sandwich Testing | Software Testing
- Software Engineering | Comparison between Regression Testing and Re-Testing
- Alpha Testing | Software Testing
- Unit Testing | Software Testing
- Stress Testing | Software Testing
- Sanity Testing | Software Testing
- Gray Box Testing | Software Testing
- Acceptance Testing | Software Testing
- Software Testing | Reliability Testing
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.