What is functional decomposition in software testing?
Functional decomposition breaks down a complex functionality into smaller and simpler parts. A team discusses and carries out thoughtful analysis to describe interactions between different components of the entire functionality.
Functional decomposition diagram
Testers use a functional decomposition diagram to illustrate how subfunctions interact. It is typically a tree diagram that conveniently shows functions splitting into smaller subfunctions.
Steps in functional decomposition
- Find the most general function: Identify the function that serves the most general purpose of a design. Place this function at the root of the tree diagram.
- Find closest subfunctions: Identify subfunctions that most immediately precede the general function. The closest subfunctions are performed right before the general function can be executed. Place the subfunctions on the tree diagram and connect them to the general function on the previous level.
- Find the next level of subfunctions: Find the closest subfunctions for each subfunction identified in step 2, and add them to the tree diagram. Continue this process until the closest subfunctions of the subfunction before are the most basic ones.
- Verify functional decomposition diagram: Verify the functional decomposition diagram and ensure that no additional functions are to be included.
Example
The following illustration describes the process of functional decomposition of the course administration process.
Course administration is the most general task. The user must execute the subfunctions enrollment, completion, and attendance immediately before the general task. Similarly, the user must execute the subfunctions registration, payment, certification, and assessment before executing the functions at the higher level.
Free Resources