因果图法

等价类划分法和边界值分析方法都是着重考虑输入条件,如果程序输入之间没有什么联系,采用等价类划分和边界值分析是一种比较有效的方法。

如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的。

因果图法着重测试规格说明中的输入与输出间的依赖关系。

定义

其是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

特点:

(1)考虑输入条件的相互制约及组合关系

(2)考虑输出条件对输入条件的依赖关系

核心

因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合

所谓的原因就是输入,所谓的结果就是输出。

因果图的“因”—输入条件
因果图的“果”—输出结果

注意事项

所有输入/输出条件的相互制约关系以及组合关系

输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”

基本符号

通常$C_i$表示原因,$E_i$表示结果,各节点表示状态,可取值“0”或“1”。

“0”表示某状态不出现,“1”表示某状态出现。

image-20210617211315524

image-20210617211332968

因果图中的约束条件

image-20210617211526186

必经步骤

①找出所有的原因,原因即输入条件或输入条件的等价类。

②找出所有的结果,结果即输出条件。

③明确所有输入条件之间的制约关系以及组合关系。

哪些条件不能组合到一起,哪些条件可以组合到一起

④明确所有输出条件之间的制约关系以及组合关系。

哪些输出结果不能同时输出,哪些输出结果可以同时输出

⑤找出什么样的输入条件组合会产生哪种输出结果

把因果图转换成判定表/决策表

⑦为判定表/决策表中的每一列表示的情况设计测试用例。

案例

案例:交通一卡通自动充值软件系统需求

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

分析:

1、找到所有输入条件编号
2、找到所有输出条件编号
3、找出所有输入、输出的制约关系

image-20210617212731611 image-20210617212832967

根据因果图再制作出对应的“表格”

image-20210617212935581

案例:盒装饮料的自动售货机软件

产品说明书:有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。

(1)确定需求中的原因与结果

image-20210617213122851

(2)确定原因与结果的逻辑关系

$C1$与$C2$需要一个中间结果$c_{m1}$,$C3,C4,C5$需要一个中间结果$C_{m2}$。

(3)确定因果图中的约束

C1 与 C2 是或的关系, C3、C4、C5 是或的关系。

image-20210617214918836

决策表

将原因C1、C2、C3、C4、C5按二进制由小到大分别取值,并分析中间结果的成立与否,进而得出下面的简化版(即中间结果Cm1、Cm2成立的情况)

image-20210617215009962

image-20210617215035856

简化版

image-20210617215230493

(5)根据决策表设计测试用例

image-20210617215502930

参考链接

Assignment2:因果图法的介绍与示例分析 - 张悠悠 - 博客园 (cnblogs.com)

11、因果图法 - 追风的小蚂蚁 - 博客园 (cnblogs.com)

作者

bd160jbgm

发布于

2021-06-17

更新于

2021-06-17

许可协议