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