功能测试技术--因果图法
一、因果图法概念
1、等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合,输入条件之间的相互制约关系。
2、因果图是一种利用图解分析输入的各种组合的情况,从而设计测试用例的方法,它适用于检查程序输入条件的各种组合情况,
3、因果图法考虑了输入情况的各种组合及输出情况之间的相互制约关系
二、因果图中出现的基本符号
通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。
三、因果关系
恒等:若C1为1,则e1也为1
非:若C1为1,则e1为0
或:若c1或c2或c3为1,则e1为1
与:若c1和c2都为1,则e1为1
四、约束
1、实际问题当中,输入状态相互之间,输出状态相互之间可能存在某些依赖关系,称为“约束”
2、对于输入条件之间的约束有E(Exclusive or)、I(In)、O(Only)、R(Request)四种约束
3、对于输出条件的约束只有M(Mandate)约束。
4、在因果图中,用特定的符号表明这些约束
五、因果图法设计测试用例步骤
1、根据程序规格说明书描述的内容,分析并确定“原因”和“结果”,找出原因与原因之间,原因与结果之间的对应关系,将其表示成连接各个原因和结果的“因果图”。
2、由于语法或环境限制,有些原因与原因之间、原因与结果之间的组合情况是不可能出现的,在因果上用记号标明约束或限制条件;
3、将因果图转换成判定表
4、根据判定表中每一列设计测试用例
六、因果图法案例
1、程序规格说明要求:
输入的第一个字符必须是“#”或“*”,第二个字符必须是一个数字,在此情况下进行文件的修改;
如果第一个字符不是“#”或“*”,则给出信息N;
如果第二个字符不是数字,则给出信息M。
2、步骤:
2.1 分析程序的规格说明,列出原因和结果;
2.2 找出原因与结果之间的因果关系,原因与原因之间的约束关系,画出因果图。
2.3将因果图转换成判定表;
2.4 根据判定表,设计测试用例的输入数据和预期输出。
2.5 列出原因和结果
原因:c1--第一个字符是“#”
c2--第一个字符是“*”
c3--第二个字符是一个数字
结果:e1--输出信息N
e2--修改文件
e3--给出信息M
2.6 因果图
2.7 将因果图转化为判定表
2.8 设计测试用例
最左边两列,原因c1和c2同时为1不可能,排除掉,根据表可设计出6个测试用例
七、使用因果图法的优点
1、考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。
2、能够帮助测试人员按照一定的步骤,高效率的开发测试用例。
3、因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性。