用图解的方法表示输入的各种组合关系,写出判定表,从而设计相应的测试用例。

1.基本信息

因果图(Cuase-effect Graph)是一种描述输入条件的组合以及每种组合对应的输出的图形化工具。在因果图的基础上可以设计测试用例。

2.因果图中的图形符号

(1)基本图形符号
image.png

  • 恒等。若原因出现,则结果出现;若原因不出现,则结果不出现。
  • 非。若原因出现,则结果不出现;若原因不出现,则结果出现。
  • 或。若几个原因中有一个出现,则结果出现;若几个原因均不出现,则结果不出现。
  • 与。若几个原因都出现,结果才出现;若几个原因中有一个不出现,则结果不出现。

(2)限制关系图形符号
限制关系图形要么在因(输入条件)之间,要么在果(输出结果)之间。
image.png
从原因方面考虑主要有4种约束条件:

  • E(互斥、排他)。a、b两个原因不会同时出现,最多只有一个出现。
  • I(包含、或)。a、b、c三个原因至少有一个出现。
  • O(唯一)。a、b两个原因必须有一个出现,且仅有一个出现。
  • R(需求)。a出现时b必定出现。

    3.因果图法设计测试用例的步骤

  • 分析程序的规格说明书中哪些是原因,哪些是结果。所谓原因,是指输入条件或输入条件的等价类,而结果是指输出条件。给每一个原因和结果赋一个标识符。

  • 分析程序规格说明书中的语义,确定原因与原因,原因与结果之间的关系,画出因果图。
  • 由于语法环境的限制,一些原因与原因之间,原因与结果之间的组合不能出现。对于这些特殊情况,在因果图中用一些记号标明约束或限制条件。
  • 将因果图转化为判定表。
  • 根据判定表的每一列设计测试用例。

当然,若能直接得到判定表,可以直接根据判定表设计测试用例。

5.优缺点

优点:

1.有助于用一个系统的方法选择出高效的测试用例集;
2.通过将规格说明转换为布尔逻辑网络,就可以指出规格说明的不完整和不明确之 处。

缺点:

尽管因果图方法确实能产生一组有效的测试用例,但通常它不能生成全部应该被确定的有效测试用例。最好是单独考虑边界值分析等方法。

6.应用场合

在界面中有多个控件,控件之间有组合或限制关系,不同的输入组合会对应不同的输出结果,如果想弄清楚不同的输入组合到底对应哪些输出结果,可以使用因果图/判定表法。(因果图/判定表法比较适合测试组合数量较少的情况,一般少于20种)

7.举例

题目:

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

分析:

image.png
image.png
image.png