用图解的方法表示输入的各种组合关系,写出判定表,从而设计相应的测试用例。
1.基本信息
因果图(Cuase-effect Graph)是一种描述输入条件的组合以及每种组合对应的输出的图形化工具。在因果图的基础上可以设计测试用例。
2.因果图中的图形符号
(1)基本图形符号
- 恒等。若原因出现,则结果出现;若原因不出现,则结果不出现。
- 非。若原因出现,则结果不出现;若原因不出现,则结果出现。
- 或。若几个原因中有一个出现,则结果出现;若几个原因均不出现,则结果不出现。
- 与。若几个原因都出现,结果才出现;若几个原因中有一个不出现,则结果不出现。
(2)限制关系图形符号
限制关系图形要么在因(输入条件)之间,要么在果(输出结果)之间。
从原因方面考虑主要有4种约束条件:
- E(互斥、排他)。a、b两个原因不会同时出现,最多只有一个出现。
- I(包含、或)。a、b、c三个原因至少有一个出现。
- O(唯一)。a、b两个原因必须有一个出现,且仅有一个出现。
-
3.因果图法设计测试用例的步骤
分析程序的规格说明书中哪些是原因,哪些是结果。所谓原因,是指输入条件或输入条件的等价类,而结果是指输出条件。给每一个原因和结果赋一个标识符。
- 分析程序规格说明书中的语义,确定原因与原因,原因与结果之间的关系,画出因果图。
- 由于语法环境的限制,一些原因与原因之间,原因与结果之间的组合不能出现。对于这些特殊情况,在因果图中用一些记号标明约束或限制条件。
- 将因果图转化为判定表。
- 根据判定表的每一列设计测试用例。
5.优缺点
优点:
1.有助于用一个系统的方法选择出高效的测试用例集;
2.通过将规格说明转换为布尔逻辑网络,就可以指出规格说明的不完整和不明确之 处。
缺点:
尽管因果图方法确实能产生一组有效的测试用例,但通常它不能生成全部应该被确定的有效测试用例。最好是单独考虑边界值分析等方法。
6.应用场合
在界面中有多个控件,控件之间有组合或限制关系,不同的输入组合会对应不同的输出结果,如果想弄清楚不同的输入组合到底对应哪些输出结果,可以使用因果图/判定表法。(因果图/判定表法比较适合测试组合数量较少的情况,一般少于20种)
7.举例
题目:
交通卡自动充值软件系统需求
系统只接收50元或100元纸币,一次充值只能使用一张纸币,一次充值金额只能为50元或100元
若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功
若输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元
若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,并找零50元
若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功
若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,提示错误
若选择充值按钮后不输入纸币,提示错误