等价类划分和边界值这两种方法中主要考虑各种输入条件,没有考虑各种输入条件的组合。
因果图法就是帮助系统地选择一组高效测试用例的方法,既考虑了输入条件的组合关系,又考虑了输出对输入条件的依赖关系,即因果关系。
因果图:
在因果图中常用Ci表示原因,Ei表示结果。
原因和结果在图中用节点表示,当原因、结果出现时,节点值为1,否则为0.
原因与结果关系:
(1)恒等(-):若原因出现,则结果出现;原因不出现,结果不出现。
(2)非(~):若原因出现,则结果不出现;原因不出现,则结果出现。
(3)或(∨):若几个原因有一个出现,则结果出现;若几个原因一个都不出现,则结果不出现。
(4)与(∧):若几个原因都出现,则结果出现;若几个原因有一个不出现,则结果不出现。
原因和原因以及结果与结果之间的关系:
用因果图法做测试用例:
(1)分割说明书
分析规格说明书中的功能说明,将输入条件分成若干组,然后分别对每一组使用因果图,这样可以减少输入条件组合的数目。
(2)识别原因和结果,并进行编号
(3)根据规格说明中的原因和结果关系画出因果图。
(4)根据因果图画出判定表。
(5)根据判定表设计测试用例。
举例:
在文件的第一列字符必须是A或B,在文件的第二列字符必须是一个数字。
这种情况下,文件被修改了。
若文件第一个字符不正确,则打印“X12”消息。
若第二个不是数字,则打印“X13”消息。
得到判定表:
注意,原因没有110和111,是因为互斥,不会出现,这样就减少了测试用例。
最后选择结果全部出现一次对和错的条件就好。
即1和6或者1和4.
最后生成测试用例: