什么是判定表?
判定表法也叫判定驱动法,是分析和表达多逻辑条件下执行不同操作的情况的工作。
应用场合:只要适用于多条件的内容组合与结果分析
它由以下几个内容组成:
- 条件桩(condition stub):列出了问题的所有条件。通常认为列出的条件的次序无关紧要。
- 动作桩(action stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。
- 条件项(condition entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
- 动作项(action entry):列出在条件项的各种取值情况下应该采取的动作。
建立判定表的步骤
- 第一步:列出所有的条件桩和动作桩
- 填入条件项
- 填入动作项,制定初始判定表
- 第二步:确定规则的个数
- 假如有n个条件,每个条件有两个取值(0、1),故有 2^n 种规则
- 第三步:简化,合并相似规则或相同动作
使用案例
需求:订购单的检查
- 如果金额超过 500 元,又未过期,则发出批准单和提货单;
- 如果金额超过 500 元,但过期了,则不发批准单;
- 如果金额低于 500 元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。
1)分析条件和动作:
2)写入条件桩、动作桩、条件项、动作项:
3)对判定表进行简化和优化。(对其中不合理或者重复的进行取舍)
不管金额的高低,只要未过期,就会发送批准单和提货单。(在测试时间不充足的情况下,可以选二者中的一个情况进行测试,时间充足的情况下,每一个都要测试),所以优化之后,条件项就减少为3个:
4)将判定表中的每一列(条件项和对应的动作项)作为测试用例的操作以及对应的预期结果。
适合使用判定表设计测试用例的条件
- 规格说明以判定表的形式给出,或很容易转换成判定表
- 条件的排序顺序不影响执行哪些操作
- 规则的排列顺序不影响执行哪些操作
- 当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则
- 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要