A precise and compact way to model complicated logic.
Here, you associate conditions with actions to perform. You can associate many independent conditions with several actions in an elegant way.

Here:
- T = True
- F = False
- X = Selected action
-
- = IDC
- A rule is a column in the table Don’t care values in decision tables help reduce the number of variants. We choose these for inputs that are necessary but have no effect, inputs that are emitted, and mutually exclusive cases.
Warning
A don’t care condition is NOT a don’t know condition
Also, if conditions are equivalent classes, inputs are mutually exclusive.

The condition entries in a decision table are interpreted by a computer program as inputs or equivalence classes of inputs. Each action in the table are interpreted as outputs. Each rule is then, a test case.
Don’t care entries reduce the number of explicit rules by implying that there are non-explicit rules. Each don’t care doubles the count for the rule. Then, we want to determine the corresponding rule count for each rule and total them. (If its don’t care, instead of T or F, its 2 instead of 1).

If we have less rules than combination rule count there are missing rules, if there are more, we might have redundant rules or an inconsistent table.
When we make our C’s, we care about specificity because we want to reduce ambiguity with our rules.
Applicability
- The specification is given or can be converted to a decision table.
- The order in which the predicates are evaluated does not affect the interpretation of the rules or resulting action
- The order of the rule evaluation has no effect on the resulting action
- Once a rule is satisfied and the action selected, no other rule needs to be examined
- The order of executing actions in a satisfied rule is of no consequence
- In reality, the restrictions do not eliminate many potential applications
Note
This type of testing is the most appropriate for programs where:
- There is a lot of decision making
- There are important logical relationships among input variables
- There are calculations involving subsets of input variables
- There are cause and effect relationships between inputs and outputs
- There is complex computation logic
Warning
- These do not scale well
- These need to be iteratively refined
- Look for redundant and inconsistent rules
- Look for missing rules