- 判定表法可以把复杂的逻辑关系和多种条件组合的情况表达的很明确。
- 判定表包含四个部分:条件桩、动作桩、条件项、动作项。判定表中条件项和动作项的一列就是一条规则,针对每个规则设计测试用例。
- 条件桩:系统的所有输入(输入次序无关紧要)
- 动作桩:系统可能采取的操作(次序无关紧要)
- 条件项:条件桩的所有取值在所有情况下的真假值
- 动作项:在输入项的各种取值情况下应采取的操作
- 判定表可以化简,如果表中两条或多条规则相同且条件项之间非常相似,则可以将其合并,如下图:
- 如何使用判定表法
- 写出输入、输出
- 输入包含外部输入、内部预置、配置文件等
- 输入和输出只有两种取值时,可以只标识一个。有多种取值时,每种取值都要标识出来
- 输入和输出需独立标识
- 构造判定表
- 输入填入条件桩,输出填入动作桩。条件项从做到右列出从“NNN...N”到“YYY...Y”
- 根据条件项填入对应的动作项
- 若条件项不合法,则动作项写“X”
- 简化判定表(可选)
- 判定表简化减少了测试用例,但牺牲了测试的充分性
- 简化过程为找到输出相同的两项,只有一个输入项不同时,说明这项输入对输出没有影响,则可以合并这两列
- 生成测试用例
- 根据判定表的每一列编写一个测试用例。
- 写出输入、输出
- 判定表法的优缺点
- 优点
- 充分考虑了各种输入组合
- 简化判定表后一个用例可以测试多种情况,测试效率高
- 用例的有效性高
- 测试用例的输出可以预测
- 缺点
- 如何输入项很多,判定表规模会很大
- 有的输入组合实际情况下可能并不需要进行组合,会产生冗余
- 优点
- 示例(欠费停机)
- 若欠费或停机则不允许打电话
- 判定表
- 第一列和第二列可以合并,简化后的判定表为
- 若欠费或停机则不允许打电话