软件测试基础知识(7)——因果图法
因果图法
定义:因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况
特点:1.考虑输入条件的相互制约及组合关系
2.考虑输出条件对输入条件的制约关系
因果图法产生的背景
等价类划分法和边界值分析法嗾使着重考虑输入条件,但没有考虑输入条件的各种组合,及输入条件之间的相互制约关系,这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合,相应产生多个动作的形式来进行测试用例的设计。这就需要利用因果图(逻辑模型)
因果图核心
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
因果图的因————输入条件
因果图的果————输出结果
因果图法需要考虑:1.所有输入/输出条件的相互制约以及组合关系
2.输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生什么样的输出结果,即因果关系。
因果图中的基本符号
通常在因果图中用Ci表示原因,用Ei表示结果,各节点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现
恒等
含义:若原因出现,则结果出现;若原因不出现,则结果不出现。
若c1=1.则E1=1;
若c2=0,则E2=0;
举例:取钱,打印凭条
非(~)
含义:若原因出现,则结果不出现;若原因不出现,则结果出现
若c1=1,则e1=0;
若c1=0,则e1=1;
举例:搜索联系人,如果有就不提示错误,如果没有就提示错误
或(v)
含义:若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现
若c1=1或c2=2或c3=1,则e1=1;
若c1=c2=c3=0,则e1=0;
与(^)
含义:若几个原因都出现,则结果才能出现;若其中一个原因不出现,则结果不出现
若c1=1并且c2=1,则e1=1;
因果图中的约束条件
互斥:e表示a,b,c三个原因不能同时成立
包含:l表示a,b,c中至少有一个条件成立
屏蔽(强制):m表示结果a是1,则结果b强制为0
唯一:o表示a,b条件中有且仅有一个成立
要求:r表示当a出现时b也必须出现
因果图法基本步骤
利用因果图法导出测试用例需要经过以下几个步骤
1.找出所有的原因,原因即输入条件或输入条件的等价类
2.找出所有的结果,结果即输出条件
3.明确所有输出条件之间的制约关系以及组合关系。哪些条件不能组合到一起,哪些条件可以组合到一起
4.明确所有输出条件之间的制约关系以及组合关系。那些输出结果不能同时输出,那些输出结果可以同时输出
5.找出什么样的输入条件组合或产生那种输出结果
6.把因果转换成判定表/决策表
7.为判定表/决策表中的每一列表示的情况设计测试用例