因果图法

因果图法在测试时必须考虑输入条件的各种组合,以及输入及输出的限制约束,它是一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,因果图是一种逻辑模型。

原因和结果之间的因果关系(状态):

  1. 恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现。
  2. 非 ~:若原因出现,则结果不出现;若原因不出现,则结果出现。
  3. 或 \/:若几个原因中有1个出现,则结果出现;若几个原因都不出现,则结果不出现。
  4. 与 /\:若几个原因都出现,结果才出现。若其中有1个原因不出现,则结果不出现。

输入状态之间的依赖关系(约束):

  1. 互斥 E:表示a、b 2个原因不会同时成立,最多有1个可能成立。
  2. 包含 I:表示a、b、c 3个原因中至少有1个必须成立。
  3. 唯一 O:表示 a 和 b 当中必须有1个,且仅有1个成立。
  4. 要求 R:表示当 a 出现是,b 必须也出现。也就是说 a 出现时不可能 b 不出现。
  5. 强制 M:表示当 a 是1时,b 必须是0。而当 a 为0时,b 的值不定。

基本步骤:

  1. 分析哪些是原因,哪些是结果。原因是输入条件或输入条件的等价类,结果是输出条件。
  2. 分析原因与结果之之间、原因与原因之间的对应关系,画因果图
  3. 标明约束条件,因为有些原因和结果的组合情况是不可能出现的
  4. 把因果图转换成判定表
  5. 为判定表中的每一列设计测试用例

有一个处理单价为 2.5 元的盒装饮料的自动售货机软件。若投入 2.5 元硬币,按“可乐”、“啤酒”或“奶茶”按钮,相应的饮料就送出来,若投入的是 3 元硬币,在送出饮料的同时退还 5 角硬币。
【实验步骤】
1)导出因果图。
2)导出判定表。
3)根据判定表写测试用例表。

该题目的GUI程序:https://download.csdn.net/download/weixin_43845524/12439346(官方自动调的积分)
  1. 分析:
    原因:1) 投入 2.5 元硬币;2) 投入 3 元硬币;3) 按“可乐”按钮;4) 按“啤酒”按钮;5) 按“奶茶”按钮。
    中间状态:1) 已投币;2)已按按钮。
    结果:1) 退还 0.5 元硬币;2) 出可乐;3) 出啤酒;4) 出奶茶。
    因果图:
    在这里插入图片描述
  2. 导出判定表
    在这里插入图片描述
  3. 测试用例表
用例编号输入数据预期输出实际输出
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不投钱,按奶茶不出,不退钱不出,不退钱

结论:所有测试用例组符合预期,暂时没有问题。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐