软件测试之判定表法

判定表法

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. 填入动作项等到初始判定表

条件桩条件项12345678
功率大于50马力?YYYYNNNN
维修记录不全?YYNNYYNN
运行10年以上?YNYNYNYN
动作桩优先处理?XXXXX
其他处理XXX

1.5 .  简化判定表

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

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

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

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

  2. 简化后为

条件桩条件项12345
功率大于50马力?YYNNY
维修记录不全?YN--N
运行10年以上?-YYNN
动作桩优先处理?XXX
其他处理XX

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

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. 填入动作项,等待初始的判定表

输入条件12345678
输入50元YYX
输入100元YYX
充值50元YYX
充值100元YYX
动作桩充值成功并退卡XXX
提示充值成功XXX
找零XXXX
提示错误XXXXX

2.5 简化

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

2.6.测试用例设计

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CJCGyzos-1677455628520)(/images/decision_table_testcase.png)]

7. 小结

优缺点

优点

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

缺点

  • 不能表达重复执行的动作、例如循环结构
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Echo-Niu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值