判定表法

判定表法

1. 使用场景

适合于有多个输入和对个输出,输入和输出之间有相互的组合关系, 输入输出之间有相互的制约和依赖关系

2. 定义

判定表也称决策表, 是分析和表达多逻辑条件下执行不同操作的工具.

它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表适合于处理这类问题。

3. 组成

判定表是由条件桩、动作桩、条件项、动作项四部分组成,如下图.

条件桩 条件项
动作桩 动作项

1) 条件桩(Condition Stub):列出了问题得所有条件。通常认为列出的条件的次序无关紧要。

2) 动作桩(Action Stub):列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。

3) 条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。

4) 动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。

4.规则及规则合并

4.1 规则

任何一个条件组合的特定取值及其相应要执行的操作称为规则。

在判定表中贯穿条件项和动作项的一列就是一条规则。显然判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列。

4.2 化简

规则合并有两条或多条规则具有相同动作,并且其条件项之间存在着极为相似的关系。

5. 测试案例设计

步骤:

  1. 明确规则个数
  2. 列出所有条件桩和动作桩
  3. 填入条件项
  4. 填入动作项,等到初始判定表
  5. 简化,合并相似规则

6. 案例

1. 案例1

问题要求:对于功率大于50马力的机器、维修记录不全或运行10年以上的机器,应优先维修.

测试案例设计思想

1.1 . 明确规则个数

这里有三个条件:大于50马力、维修记录不全、运行10年以上, 每个条件有2种取值,所以有八种规则.

1.2. 列出条件桩和动作桩

条件桩 功率大于50马力?
  维修记录不全?
  运行超过10年?
动作桩 优先处理

1.3. 填入条件项

1.4. 填入动作项等到初始判定表

条件桩 条件项 1 2 3 4 5 6 7 8
  功率大于50马力? Y Y Y Y N N N N
  维修记录不全? Y Y N N Y Y N N
  运行10年以上? Y N Y N Y N Y N
动作桩 优先处理? X X X   X   X  
  其他处理       X   X   X

1.5 . 简化判定表

通过初始的判定表我们发现:

  1. 在三个条件中有2个不满足时,剩下的一个完全没有参考价值,可以进行简化.

    只有功率大于50马力、维修记录全的、运行十年以上的才优先处理;

    其他处理的情况是:满足动力大于50马力、维修功能完全、没有运行10年以上中只要满足两项

  2. 简化后为

条件桩 条件项 1 2 3 4 5
  功率大于50马力? Y Y N N Y
  维修记录不全? Y N - - N
  运行10年以上? - Y Y N N
动作桩 优先处理? X X X    
  其他处理       X X

注意: “-”表示取值与否不影响触发的动作.即,不影响规则

2. 案例2.

公交一卡通自动充值系统要求:

  • 系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元。
  • 若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;
  • 若输入50元纸币,并选择充值100元,提示错误,并退回50元;
  • 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;
  • 若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;
  • 若输入纸币后在规定时间内不选择充值按钮,找零,并提示错误;
  • 若选择充值按钮后不输入货币,提示错误
测试案例实现如下

2.1 明确规则个数

规则个数(条件桩) 输入50元
  输入100元
  充值50元
  充值100元

2.2. 列出条件桩和动作桩

动作桩 提示充值成功
  充值成功并退卡
  退卡
  找零

2.3. 列入条件项

2.4. 填入动作项,等待初始的判定表

输入条件   1 2 3 4 5 6 7 8
  输入50元 Y Y     X      
  输入100元     Y Y   X    
  充值50元 Y   Y       X  
  充值100元   Y   Y       X
                   
动作桩 充值成功并退卡 X   X X        
  提示充值成功 X   X X        
  找零   X X   X X    
  提示错误   X     X X X X

2.5 简化

这个案例中每个条件都是独立的,没有可以简化的

2.6.测试用例设计

上面的表中每一条就是一个测试用例.

7. 小结

优缺点

优点

  • 能把复杂问题按照各种可能情况—列举出俩, 简明而易于理解,避免遗漏

缺点

  • 不能表达重复执行的动作、例如循环结构

猜你喜欢

转载自www.cnblogs.com/zhanghan123/p/11671781.html