Glossary · Test design
Decision table testing
Also called: decision table, decision tables, decision table technique, cause-effect table
Definition
A test design technique that lists combinations of conditions and the action each one should trigger, so every business rule gets a test.
Decision table testing models business logic that depends on a combination of conditions. You list the conditions as rows, every relevant combination of their values as columns (rules), and the expected action for each rule. Each column becomes at least one test case. It is the most reliable way to make sure no combination of a complex rule is forgotten.
Example: loan approval
Rules: an applicant is approved if they have a credit score of 700 or more and income of at least $40,000. A score of 700 or more with lower income is referred for manual review. Existing customers with a score below 700 are also referred. Everyone else is declined.
Three yes/no conditions give 2 x 2 x 2 = 8 rules:
| Condition / Action | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 |
|---|---|---|---|---|---|---|---|---|
| Credit score >= 700 | Y | Y | Y | Y | N | N | N | N |
| Income >= $40,000 | Y | Y | N | N | Y | Y | N | N |
| Existing customer | Y | N | Y | N | Y | N | Y | N |
| Approve | X | X | ||||||
| Refer | X | X | X | X | ||||
| Decline | X | X |
Writing it out forces questions the requirement did not answer clearly. For example, R5 and R7 are both referred, so for an existing customer with a low score, income makes no difference. Was that intended, or should a low score with low income be declined even for existing customers? The table makes the question visible so it can be confirmed with the product owner before testing.
Collapsing the table
When a condition does not affect the outcome, rules can be merged using “-” for “doesn’t matter”. R1 and R2 both approve regardless of customer status, so they collapse into one rule: score Y, income Y, customer -. Collapsing reduces tests, but keep at least one test per distinct action path.
Combining with other techniques
Each condition still has boundaries. “Score >= 700” should be tested with 699 and 700, and “income >= $40,000” with $39,999 and $40,000. Use the decision table to cover the combinations and boundary value analysis to pick the concrete values.
When to use it
Decision tables suit rules with several interacting conditions: pricing and discounts, eligibility, permissions, insurance quotes, tax. With many conditions the table grows as 2^n, so group conditions, collapse irrelevant ones, or move to pairwise testing for independent configuration options.