等价类划分法、边界值分析法、正交法,主要侧重于输入条件,却没有考虑这些输入之间的关系,业务逻辑性不强,主要是对合法非法字符输入的检查。除了输入框之外,还存在各类按钮,而且这些按钮之间存在相互关联和制约的关系,且具有较强的逻辑性。则可以采用因果图判定表来进行测试用例设计。
输入与输出之间的因果关系
输入与输入间的约束关系
异 如只能选男/女
或 必填项 三个条件必须要有一个发生
因果判定法设计步骤
(1)分析需求规格说明书,明确所有的输入条件(因),明确所有的输出结果(果)。
(2)分析输入与输入之间、输入与输出之间的关系(明确哪些条件可以组合在一起,哪些条件不能组合在一起,明确什么样的输入条件组合可产生哪些输出结果),将输入与输出之间的关系用因果图画出来。
(3)因果图转化为判定表,通过判定表展示输入条件的组合与输出结果的对应关系,并简化判定表。
(4)根据判定表设计测试用例。判定表的每一个组合就是一个测试点,再组织成测试用例。
举例:
输入条件之间的组合有8种情况:
可以理解为因果图是用来简化判定表的,如C1和C2不会都是Y,所以组合5和6是不存在的
同时组合3和组合4与C3取值无关,所以可以简化为1条。
简化后的判定表:
因果图法的优点
因果图法缺点
举例
某地铁充值模拟系统的原型图及需求说明
地铁卡充值模拟系统有两个输入条件:
第一个输入条件是投币20元;
第二个输入条件是选择充值金额20元。
而输出结果从需求说明可以看到有3个:
第一个输出结果是提示充值成功并退卡;
第二个输出结果是退出纸币并提示超时;
第三个输出结果是提示请先投入纸币,再单击充值按钮。
其中条件1可单独出现,条件2可单独出现,条件1和2可以组合。
输入与输入之间是或的关系。
输入与输出之间是或的关系。
得到判定表:
(1)因果判定法采用了画图的方式去展示条件与条件之间的制约关系,有时画图的方式太麻烦,对初学者而言并不适用。
(2)找准每个有效组合及其对应的输出结果(也就是因果关系),排除不能组合的情况,这一点是因果判定法的关键。如果分析错了,就会得出错误的测试结果。
(3)如果一个页面中存在多个控件,并且这些控件之间存在相互制约的关系,就可以使用因果判定法去解决这类问题。