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

  1. 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.
  2. 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.
  3. 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.
  4. 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.

%0 node_1 Course Administration node_1628846121015 Enrollment node_1->node_1628846121015 node_4 Completion node_1->node_4 node_1628846246381 Attendance node_1->node_1628846246381 node_1628846281068 Registration node_1628846121015->node_1628846281068 node_1628846293057 Payment node_1628846121015->node_1628846293057 node_1628846308375 Certification node_4->node_1628846308375 node_1628846327719 Assessment node_4->node_1628846327719

Free Resources

Copyright ©2026 Educative, Inc. All rights reserved