首页/开发/软件测试速查/判定表(Decision Table)
用例设计方法62 条

判定表(Decision Table)

当业务结果由多个条件组合决定时,用判定表穷举条件桩与动作桩:每列一条规则,避免遗漏组合分支。

软件测试速查开发更新于 2026-10-13

判定表是什么

当业务结果由多个条件的组合共同决定时,判定表把条件桩与动作桩排成矩阵:上半部分列出各条件的取值,下半部分列出对应触发的动作,每一列是一条完整的业务规则。它的价值在于把「我可能漏了某种组合」变成可以逐列核对的表格,穷举后按规则化简,既不重复也不遗漏。

基本信息

构成条件桩(输入条件)、动作桩(结果动作)、规则列
取值符号Y/N 表示条件成立与否,短横线表示不关心
组合规模n 个二值条件是 2 的 n 次方列,先化简再展开
化简方法合并动作相同的规则、排除不可能组合
配套方法条件多时结合成对组合(pairwise)控制规模

示例:会员折扣规则

条件/动作R1R2R3R4
是会员YYNN
订单满 200YNYN
动作:9 折X---
动作:95 折-X--
动作:无折扣--XX

典型使用场景

  • 折扣与费率规则:会员等级、金额门槛组合出多种价格。
  • 风控判定:多个指标组合决定放行、人工审核或拒绝。
  • 权限矩阵:角色、资源、操作三个维度决定允许与否。
  • 消息路由:按类型与优先级组合决定通知渠道。
  • 运费计算:地区、重量、会员状态组合出运费。
  • 回归对照:每条规则对应用例,规则变更时精准回归。
短横线(不关心)是化简的关键:当某条件取值不影响结果时合并列,表格从几十列缩回可读规模,但要与业务确认确实不影响。
不可能组合要与业务确认后明确标注,而不是从表中悄悄删掉:留下「为什么不可能」的记录,需求变化时才知道要不要加回。
判定表是活文档:业务规则更新时先改表再改用例,避免表格与系统行为各说各话。

易错点

  • 条件组合枚举不全:遗漏都不满足的兜底规则,异常输入没有明确定义的行为。
  • 条件间存在互斥约束时仍按笛卡尔积展开:产生不可能规则,表格规模虚增且干扰阅读。
  • 符号含义不在表头写清:读者对 Y、短横线的理解不一致,核对结论失效。
  • 规则表与用例失联:表格更新了,用例没跟着改,回归覆盖与规则脱钩。
  • 把顺序相关逻辑硬塞进判定表:流程依赖上一状态的情形应交给状态迁移测试。

数据来源与参考

  • ISTQB CTFL 4.0 大纲(判定表测试)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌