因果图、判定表法
一、应用场合
在界面中有多个控件,控件之间有组合或限制关系,不同的输入组合会对应不同的输出结果,如果想弄清楚不同的输入组合到底对应哪些输出结果,可以使用因果图/判定表法。(因果图/判定表法比较适合测试组合数量较少的情况,一般少于20种)
二、因果图
因(原因):输入条件
果(结果):输出结果
因果图:就是通过画图的方式来表示输入条件(因)和输出结果(果)之间的关系。
三、因果图中的图形符号
1、基本图形符号
表示的是因与果之间的关系
恒等
如果a=1 ,那么b=1
如果a=0,那么b=0
与
与的含义:只有所有条件都为1时,结果为1,有任何一个条件为0(或者所有条件为0)那么结果为0.
简化:全1为1,有0为0
分析过程如下图:
与的图形符号:
或
或的含义:只有所有条件都为0时,结果为0,有任何1个条件为1(或者所有条件为1)时,结果为1
简化:全0为0,有1为1
或的关系图形符号:
非:取反
如果a=1,那么b=0
如果a=0,那么b=1
2、限制关系图形符号
限制关系图形要么在因(输入条件)之间,要么在果(输出结果)之间。
互斥(E-exclude)
含义:可以不选,如果选只能选1个
唯一(O-Only)
含义:有且只有1个(必须要选,而且只能选1个)
唯一和互斥的区别:
互斥可以不选
唯一必须要选1个
包含(I-include)
含义:至少选1个(可以多选,不能不选,最少得选1个)
要求(R-required)
含义:如果a=1 那么要求b必须是1,反之如果a=0,那么b值无所谓
屏蔽(M-masked)
含义:当a=1时,b=0
当a=0,b的值有可能是1,也有可能是0
四、测试步骤
被测程序:交通一卡通充值模拟系统
步骤1:了解需求,找出所有的输入条件(因)
投币50元
投币100元
充值50元
充值100元
步骤2:找出所有的输出结果(果)
成功充值并退卡
找零
错误提示并退卡
将因和果填入《判定表》中
步骤3:找出输入条件之间的组合和限制关系。
步骤4:明确不同的输入组合会产生怎样的输出结果,画因果图,填判定表。(在实际工作中可以只填判定表,不画因果图)
五、总结
1、测试步骤
步骤1:分析需求,找出所有的输入条件
步骤2:找出所有的输出结果
步骤3:找出输入条件中的所有组合和限制关系
步骤4:明确每种输入组合对应的输出结果,填判定表,画因果图(熟练后,画因果图可以省略)
说明:
1)画因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例。但是有时画因果图比较麻烦,影响测试效率,所以在应用熟练之后,可以省略画因果图直接填判定表,进而编写测试用例。
2)判定表的缺点:判定表中输入条件的限制关系不好体现。
如何解决:可以在判定表中添加备注,将限制关系写入备注部分。
步骤5:根据判定表,编写测试用例
每1列表示1种组合,写1条用例
2、因果图/判定表适合测试控件的组合情况,而且适合测试组合数量比较少的情况。常见的控件有:按钮(按/不按),单选按钮(选/不选),复选框(选/不选),选项较少的下拉列表等
3、判定表的特点:
1)输入条件的顺序是无关紧要的
2)输出结果的顺序是无关紧要的
3)先测哪种组合,后测哪种组合是无关紧要的
4)每种组合之间是相互独立的
4、介绍判定表的组成项: