判定表是什么
当业务结果由多个条件的组合共同决定时,判定表把条件桩与动作桩排成矩阵:上半部分列出各条件的取值,下半部分列出对应触发的动作,每一列是一条完整的业务规则。它的价值在于把「我可能漏了某种组合」变成可以逐列核对的表格,穷举后按规则化简,既不重复也不遗漏。
基本信息
| 构成 | 条件桩(输入条件)、动作桩(结果动作)、规则列 |
|---|---|
| 取值符号 | Y/N 表示条件成立与否,短横线表示不关心 |
| 组合规模 | n 个二值条件是 2 的 n 次方列,先化简再展开 |
| 化简方法 | 合并动作相同的规则、排除不可能组合 |
| 配套方法 | 条件多时结合成对组合(pairwise)控制规模 |
示例:会员折扣规则
| 条件/动作 | R1 | R2 | R3 | R4 |
|---|---|---|---|---|
| 是会员 | Y | Y | N | N |
| 订单满 200 | Y | N | Y | N |
| 动作:9 折 | X | - | - | - |
| 动作:95 折 | - | X | - | - |
| 动作:无折扣 | - | - | X | X |
典型使用场景
- 折扣与费率规则:会员等级、金额门槛组合出多种价格。
- 风控判定:多个指标组合决定放行、人工审核或拒绝。
- 权限矩阵:角色、资源、操作三个维度决定允许与否。
- 消息路由:按类型与优先级组合决定通知渠道。
- 运费计算:地区、重量、会员状态组合出运费。
- 回归对照:每条规则对应用例,规则变更时精准回归。
短横线(不关心)是化简的关键:当某条件取值不影响结果时合并列,表格从几十列缩回可读规模,但要与业务确认确实不影响。
不可能组合要与业务确认后明确标注,而不是从表中悄悄删掉:留下「为什么不可能」的记录,需求变化时才知道要不要加回。
判定表是活文档:业务规则更新时先改表再改用例,避免表格与系统行为各说各话。