等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。
因果图的“因”——输入条件
因果图的“果”——输出结果
因果图法要注意考虑:
1.所有输入/输出条件的相互制约关系以及组合关系;
2.输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”。
利用因果图导出测试用例需要经过以下几个步骤:
① 找出所有的原因,原因即输入条件或输入条件的等价类。
② 找出所有的结果,结果即输出条件。
③ 明确所有输入条件之间的制约关系以及组合关系。
④ 明确所有输出条件之间的制约关系以及组合关系。
⑤ 找出什么样的输入条件组合会产生哪种输出结果
⑥ 把因果图转换成判定表/决策表。
⑦ 为判定表/决策表中的每一列表示的情况设计测试用例。
案例
交通一卡通自动充值软件系统需求如下:
系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元。
若输入50元纸币,并选择充值50元,完成充值后退卡,提示充