It’s Only Logical: Decision Tables and Decision Trees
Decision tables and trees show how various combinations of multiple logical decisions lead to specific outcomes.
A software system often is governed by complex logic, with various combinations of conditions and actions leading to different system behaviors. For example, if the driver presses the accelerate button on a car’s cruise control system and the car is currently cruising, the system increases the car’s speed. If the car isn’t cruising, though, the system shouldn’t do anything.
Developers must base their work on a set of functional requirements that describe what the system should do under all possible combinations of both normal and error conditions. However, it’s easy to overlook a specific condition combination, which then results in a missing requirement. These knowledge gaps are hard to spot by reviewing a specification written in natural language, with all its bulkiness and ambiguities.
Decision tables and decision trees are two effective techniques for representing how a system should behave when complex logic and decisions come into play. These techniques are valuable when defining functional requirements and business rules. They’re also a great aid for efficient test planning.