黑盒测试-因果图法-自动售货机问题
因果图法在测试时必须考虑输入条件的各种组合,以及输入及输出的限制约束,它是一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计。
·
因果图法
因果图法在测试时必须考虑输入条件的各种组合,以及输入及输出的限制约束,它是一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,因果图是一种逻辑模型。
原因和结果之间的因果关系(状态):
- 恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现。
- 非 ~:若原因出现,则结果不出现;若原因不出现,则结果出现。
- 或 \/:若几个原因中有1个出现,则结果出现;若几个原因都不出现,则结果不出现。
- 与 /\:若几个原因都出现,结果才出现。若其中有1个原因不出现,则结果不出现。
输入状态之间的依赖关系(约束):
- 互斥 E:表示a、b 2个原因不会同时成立,最多有1个可能成立。
- 包含 I:表示a、b、c 3个原因中至少有1个必须成立。
- 唯一 O:表示 a 和 b 当中必须有1个,且仅有1个成立。
- 要求 R:表示当 a 出现是,b 必须也出现。也就是说 a 出现时不可能 b 不出现。
- 强制 M:表示当 a 是1时,b 必须是0。而当 a 为0时,b 的值不定。
基本步骤:
- 分析哪些是原因,哪些是结果。原因是输入条件或输入条件的等价类,结果是输出条件。
- 分析原因与结果之之间、原因与原因之间的对应关系,画因果图
- 标明约束条件,因为有些原因和结果的组合情况是不可能出现的
- 把因果图转换成判定表
- 为判定表中的每一列设计测试用例
有一个处理单价为 2.5 元的盒装饮料的自动售货机软件。若投入 2.5 元硬币,按“可乐”、“啤酒”或“奶茶”按钮,相应的饮料就送出来,若投入的是 3 元硬币,在送出饮料的同时退还 5 角硬币。
【实验步骤】
1)导出因果图。
2)导出判定表。
3)根据判定表写测试用例表。
该题目的GUI程序:https://download.csdn.net/download/weixin_43845524/12439346(官方自动调的积分)
- 分析:
原因:1) 投入 2.5 元硬币;2) 投入 3 元硬币;3) 按“可乐”按钮;4) 按“啤酒”按钮;5) 按“奶茶”按钮。
中间状态:1) 已投币;2)已按按钮。
结果:1) 退还 0.5 元硬币;2) 出可乐;3) 出啤酒;4) 出奶茶。
因果图:
- 导出判定表
- 测试用例表
用例编号 | 输入数据 | 预期输出 | 实际输出 |
---|---|---|---|
1 | 投 2.5 元,按可乐 | 出可乐,不退钱 | 出可乐,不退钱 |
2 | 投 2.5 元,按啤酒 | 出啤酒,不退钱 | 出啤酒,不退钱 |
3 | 投 2.5 元,按奶茶 | 出奶茶,不退钱 | 出奶茶,不退钱 |
4 | 投 2.5 元,不按 | 不出,不退钱 | 不出,不退钱 |
5 | 投 3 元,按可乐 | 出可乐,退 0.5 | 出可乐,退 0.5 |
6 | 投 3 元,按啤酒 | 出啤酒,退 0.5 | 出啤酒,退 0.5 |
7 | 投 3 元,按奶茶 | 出奶茶,退 0.5 | 出奶茶,退 0.5 |
8 | 投 3 元,不按 | 不出,不退钱 | 不出,不退钱 |
9 | 不投钱,按可乐 | 不出,不退钱 | 不出,不退钱 |
10 | 不投钱,按啤酒 | 不出,不退钱 | 不出,不退钱 |
11 | 不投钱,按奶茶 | 不出,不退钱 | 不出,不退钱 |
结论:所有测试用例组符合预期,暂时没有问题。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)