1、因果图法定义:因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
2、因果图特点:考虑输入条件的相互制约及组合关系;考虑输出条件对输入条件的依赖关系。
3、因果图的背景:
(1)等价类划分方法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
(2)如果在测试时必须考虑输入条件的各种组合,则可能的组合数目是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
4、因果图的核心:
(1)因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
- 因果图的“因”----输入条件
- 因果图的“果”----输出结果
(2)因果图法要注重考虑:
- 所有输入/输出条件的相互制约关系以及组合关系
- 输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”
5、因果图中基本符号:
(1)恒等
若原因出现,则结果出现;
若原因不出现,则结果也不出现;
--若c1=1,则e1=1;
--若c1=0,则e1=0;
取钱、打印等
(2)非 ~
若原因出现,则结果不出现;
若原因不出现,则结果出现;
--若c1=1,则e1=0;
--若c1=0,则e1=1;
若果存在,则不提示错误,若果不存在,则提示错误。
(3)或 ∨
若几个原因中出现一个,则结果出现;
若几个原因都不出现,则结果不出现;
需求:若买的商品总金额大于等于60元,则有一次抽奖的机会,
小明买的商品总金额为60元,2个原因中出现一个,满足抽奖的机会,可以抽奖;
小明买的商品总金额为40元,2个原因中都未满足,不具备抽奖的机会,不可以抽奖;
(4)与 ∧
若几个原因都出现,则结果出现;
若其中的一个原因不出现,则结果不出现;
若a=true且b=true,则c=true;
若a=true或b=false,则c=false;
男的、帅的、大高个==帅哥
女的、大高个!=帅哥
6、因果图中的约束条件
(1)互斥:最多有一个可能成立(下拉菜单)
(2)包含:至少有一个成立(下拉菜单)
(3)屏蔽:a成立时,b不成立;a不成立时,b的值不一定
元旦不上班;不是元旦,一定上班;
(4)唯一:三个或多个原因中有且只有一个成立(下拉菜单)
(5)要求:一个出现,另一个一定出现
今天是星期五,明天肯定是星期六
7、因果图法基本步骤
利用因果图法导出测试用例的几个步骤:
(1)找出所有原因,原因即输入条件或输入条件的等价类;
(2)找出所有的结果,结果即输出条件
(3)明确所有输入条件之间的制约关系以及组合关系
那些条件可以组合在一起,哪些条件不可以组合在一起
(4)明确所有输出条件之间的制约关系以及组合关系
那些输出结果可以同时输出,那些输出结果不能同时输出
(5)找出什么样的输入条件组合会出现那种输出结果
(6)把因果图转换成判定表/决策表
(7)为判定表或决策表中的每一列表示的情况设计测试用例。