因果图法
适用范围:因果图法适用于描述对于多种条件的组合,相应地产生多个动作形式来考虑测试用例。
原理
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况,适合描述多种输入条件的组合、相应产生多个动作的方法。
优点
- 考虑多个输入之间的相互作用、相互制约的关系
- 指导测试用例的选择,能够指出需求规格说明描述中存在的问题
- 能够帮助测试人员按照一定的步骤,高效率地开发测试用例
- 因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明存在的不完整性和二义性
因果图的基本关系
-
恒等:若c1是1,则e1也为1,否则e1为0
-
非(~):若c1是1,则e1是0,否则e1为1
-
或(∨):若c1或c2或c3是1,则e1为1,否则e1为0(有1则为1,无1则为0)
-
与(∧):若c1和c2都是1,则e1为1,否则e1为0(同为1才是1)
因果图的约束
输入状态相互之间可能存在某些依赖关系,成为约束。
输入条件的约束
- E约束(异Exclusive):a和b中至多有一个可能为1,即a和b不能同时为1.
- I约束(或Inclusive):a、b、c中至少有一个必须是1,即a、b、c不能同时为0.
- O约束(唯一One and Only):a和b必须有一个,且有且仅有1个为1
- R约束(要求Request):a是1时,b必须是1,即不可能a是1时b是0
输出条件约束类型
- M约束(强制Masks):若结果a为1,则结果b强制为0
设计用例步骤
分析 --> 关联 --> 转换 --> 输出
- 分析:分析输入、输出数据之间的关系(确定软件规格中的原因和结果)
- 关联:根据组合间的关联、约束、形成因果图( 确定原因和结果之间的逻辑关系;确定因果图中的各个约束,由于语法或环境的限制,有些原因和原因之间、原因和结果之间的组合情况不可能出现的情况)
- 转换:由因果图转换为判定表
- 输出:由判定表导出测试用例