一、常用黑盒测试用例设计方法
- 等价类划分法
- 边界值分析法
- 判定表法
- 因果图法
- 状态迁移图法
- 流程分析法
- 正交试验法
- 输入域测试法
- 输出域测试法
- 异常分析法
- 错误猜测法
二、等级类划分法的概念
- 等价类:某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误
- 有效等价类: 有效等价类是程序规格说明有意义,合理的输入数据
- 无效等价类 :有效等价类是程序规格说明无意义,不合理的输入数据
例:
QQ邮箱注册的密码设置:6~16位字符(大小写字母和数字),不能是9位纯数字
6位: C(62选1) 7位 :............
密码:abd1234567 、123456789、abcdefg1234567890
三、等价类划分原则1和2
- 如果输入条件固定了取值范围或值的个数,则可以确定一个有效等价类和两个无效等价类
例:一个有效&两个无效
1.取值范围: 驾照年龄 18~65周岁,
一个有效:范围内(18到65之间)
两个无效(<18; >65)
2.值的个数:图形处理器,输入框(需要输入三个数字判断是否组成三角形),
一个有效:3个数字
两个无效:<3个数字 ;>3个数字
- 输入条件规定了输入值的集合,或是规定了必须如何的条件,则可以确定一有效等价类和一个无效等价类
例:一个有效&一个无效
1.有限的集合:中国的省会城市 :
一个有效:31个省市内 ,
一个无效:非31个省市内
2.必须如何的条件:必须是1888期51testing上海学员可以享受88折优惠
一个有效:51testing上海1888期学员;
一个无效:非51testing上海1888期学员
3.C语言语句必须以分号结尾 :
一个有效:分毫号结尾
一个无效:非分号结尾的
四、等价类划分原则3和4
- 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
例:一个有效&一个无效
1. if gender=Female
spend money
else
earn money
一个有效female
一个无效:male
2.相对的情况:一个逻辑值相对于另外一个逻辑值
- 如果我们确知,已经划分的等价类中各个元素在程序中的处理方式不同的,则应该将此等价类进一步划分
例:一个无效&多个有效
1.英语考试:满分100分; 60分以上证书(包含60分)
一个有效:60分(包含60分)以上
60~69分:合格
70~79:良好
80~89:优秀
90~99:超优秀
100:超人
一个无效:没有达到60分
五、等价类划分原则5
- 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
例:一个有效&多个无效
1.QQ邮箱注册 ,密码的设定多个规则:6~16位,不能9位以下纯数字
多个条件:>6个字符 <16个字符 9位以下纯数字(包含9位)
三个无效:>6 <16 9位以下纯数字(包含9位)
一个有效:同时满足三个条件
六、等价类划分使用步骤
等价类表
等价类法设计测试用例的步骤
- 为每个输入划分等价类,得到等价类表,为每个等价类规定一个 唯一编号
- 设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重复这一步骤,使得有效等价类均被测试用例所覆盖
- 设计一个测试用例, 使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖
七、等价类划分例题讲解
步骤1:将需求规格划分成需求子片段
步骤2:找出输入条件;针对每个输入条件结合等价类划分原则生存等价类表
步骤3:为每个输入条件划分出来的等价类(无效和有效的)给定一个唯一的编号
步骤4:选取测试数据去覆盖划分的等价类(一个测试输入数据尽量覆盖多个有效等价类;一个测试输入数据只覆盖一个无效等价类)
199210:(1)(5)(8)
19921:(2)
1992106:(3)
19921:(4)
1997810:(6)
205510:(7)
199200:(9)
199213:(10)
步骤5:将选取的测试输入数据按照用例的编写规范最终生成测试用例
八、等价类划分法的应用
九、边界值分析法的引出
对等价类划分的一种补充
十、边界值分析法的定义
边界值分析法概念:边界值分析法是对等价类划分的一种补充,根据经验边界是问题多发区,如果边界发生问题的概率较小,就认为边界内发生问题的可能性也较小(不是绝对的)
边值分析使用条件:
- 输入条件明确了一个值的取值范围,或是规定了值的个数
- 输入条件明确一个有序集合
十一、边界值分析法上点、离点和内点
边值点定义
- 上点:边界上的点,如果域的边界是封闭的,上点就走域范围内,如果域的边界是开放的,上点就在域范围外
- 离点:就是离上点最近的一个点,如果域的边界是封闭的,离点就在域范围外,如果域的边界是开放的,离点就是在域范围内
- 内点:在域范围内的任意一点
例:
边界值的上点,离点和内点
1.驾照年龄:18~65(包含18和65) 封闭区域
上点:18,65 优先:有效值
内点:56,34
离点:17,19;64,66 无效
2.某家公司招聘:30~50周岁(不包括30和50周岁)开放区域
上点:30,50 优先:无效值
内点:34,43
离点:29,31;49,51有效
蓝色代表边界,实心代表闭区间,空心代表开区间,
十二、边界值分析法的数据选取原则
- 如果输入(输出)条件规定了取值范围,或是规定了值的个数,则应该以该范围的边界内及边界附近的值作为测试用例
例:
取值范围:驾照年龄18~65周岁:18,65,17,66
值的个数:图形处理三个数值判断是否组成三角形:3个数值,2个数值,4个数值
- 如果输入(输出)条件规定了值的个数的取值范围,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据
例:
qq的邮箱注册,密码的设定:6~16个字符;16个字符,6个字符,17个字符,5个字符
- 如果程序规格说明中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试用例
例:
有序的集合:
月份:01,02...12月
第一个元素:1月
最后一个元素:12月
- 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例
例:内部数据结构:
栈:存储10个数据
权限:空:pop
存满10个数据:push
十三、边界值分析法的使用步骤
- 分析输入参数的类型:从测试规格中分析得到输入参数类型
- 等价类划分(可选):对于输入等价类划分方法进行等价类的划分
- 确定边界:运用域测试分析方法确定域范围的边界(上点,离点,内点)
- 相关性分析(可选):如果存在多个输入域,则需要运用因果图、判定表方法对这些输入域边界值的组合情况进一步分析
- 形成测试项:选择这些上点、离点与内点或者这些点的组合形成测试项
十四、边界值分析法的应用与特点
例子:手机如果欠费或者停机则不能主被叫;
等价类划分法
输入条件: 有效等价类 无效等价类
欠费 Y (1) N(3)
停机 Y (2) N(4)
case1:手机欠费并且停机;预期结果:不能主被叫 (1)(2)
case2:手机欠费不停机;预期结果:不能主被叫(4)
case3:手机不欠费停机;预期结果:不能主被叫(3)
case4 :手机不欠费不停机;预期结果:能够主被叫(3)(4)
该例子需用判定表法
条件桩; 条件项
欠费 Y Y N N
停机 Y N Y N
动作桩:
不能主被叫 Y Y Y N
十五、判定表法的定义
判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确
- 条件桩--输入条件
- 动作桩--输出结果
- 条件项--输入的取值
- 动作项--输出结果的取值
十六、判定表法的合并
2的3次方 8条规则
条件 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
原始密码正确1 | Y | Y | Y | Y | N |
新密码一致2 | Y | Y | N | N | X |
新密码够复杂度3 | Y | N | Y | N | X |
动作 | 修改成功 | 不成功(不够复杂) | 不成功(新密码不一致) | 不成功(新密码不一致) | 不成功(原密码不正确) |
*判定表的合并:化简工作是以合并相似规则为目标的。如果表中有两条或者多条规则具有相同的动作,并且条件项之间存在极为相似的关系,我们便可以将其合并
十七、判定表法的使用步骤1
- 确定规则的个数。如这里有3个条件,每个条件有两个取值,故应有222=8种规则
- 列出所有的条件桩和动作桩
- 填入条件项
- 填入动作桩和动作项
- 化简,合并相似规则
- 将每条规则转化为用例
十八、判定表法的使用步骤2
十九、判定法的使用步骤3
二十、判定表法的应用
判定表的优缺点
- 优点:它能把复杂的问题按各种肯的情况一一列举出来,简明易于理解,也可避免遗漏
- 缺点:合并存在漏测的风险。一个显然易见的原因是,虽然某个输入条件在输出接口上是无关的,但是在软件设计上,内部针对这个条件走了不同的程序分支(因分析内部业务流程而定)
输入和输出的逻辑关系和明确用判定表,不是很明了用因果图然后使用判定表。
二十一、因果图法的定义
- 因果图提供了一个把规格转化为判定表的系统化方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出
- 因果图方法最终生成的就是判定表。它适合于检查软件输入条件的各种组合情况
二十二、因果关系
第一类
因果关系(输入输出之间的逻辑关系)
恒等:输入:a;输出:b;满足条件a,则输出结果b.
非:输入:a;输出:b;满足条件a,则不能输出结果b。
与:多个输入同时满足才能得到某个结果
或:多个输入只要有一个或者一个以上满足就可以得到某个结果(v)
第二类
原因之间的关系(输入和输入之间的关系)
E的关系
I的关系
O的关系
R的关系
第三类
结果之间的关系(输出和输出之间的关系)
M的关系
二十三、原因之间的制约关系
原因之间的关系(输入和输入之间的关系)
E(exclusive)的关系-- 互斥:多个输入至多只能有一个为真,不可以同时为真,可以同时都不为真
I(include)的关系--包容:多个输入至少有一个为真,可以同时为真,不可以同时都不为真
O(only)的关系--唯一:多个输入有且只能有一个为真,不可以同时为真,也不可以同时都不为真
R(require)的关系--要求:有两个输入a,b。a为真则要求b为真;a为假则对b不做要求
结果之间的关系(输出和输出之间的关系)
M的关系--强制:输出a,b。如果a为真则强制b为假;a为假对b不做强制
二十四、因果图的运用
- 因果图提供了一个把规格转化为判定表的系统方法,从该图中可以产生测试数据。其中,原因是表示输入条件,结果是对输入执行的一系列计算后得到的输出
- 因果图方法最终生成的就是判定表。它适合于检查软件输入条件各种组合情况
中间结点:
(1)当多个原因之间不是单纯的与或的关系,可以利用中间结点存取中间结果,使得因果关系看的更清晰
(2)当多个原因都在描述同一件事情时,我们可以利用中间结点归并逻辑
因果图英文:course effect graphing
二十五、因果图的使用步骤
- 把大的系统规格划分解成可以测试的规格片段
- 分析分解后待测系统规格,找出哪些是原因(输入),那些事结果(输出)
- 画出因果图
- 把因果图转换成判定表
- 简化判定表
-
用判定表中的每一项生成测试用例
二十六、因果图的特点与应用
二十七、正交实验法的引入
二十八、正交实验法的定义
正交实验设计法,是从大量的试验点中挑选出适量的、有代表性的点,应用依据伽罗瓦理论导出的“正焦集”,合理的安排试验一种科学的试验设计方法
- 指标:通常把判断试验结果优劣的标准叫做试验的指标
- 因子:所有影响试验指标的条件
- 因子的状态:影响试验因子的,叫做因子的状态
二十九、正交表的解释
三十、正交实验法的使用步骤
1.提取功能说明,构造因子-状态表
2.加权筛选,生成因素分析表
计算各因子和状态的权值,删去一部分权值较小,即重要性较小的因子或状态,使最后生成的测试用例集缩减到允许范围
3.利用正交表构造测试数据集
4.利用正交表每行数据构造测试用例
三十一、正交实验法的应用
三十二、状态迁移图法的定义
- 许多需求用状态机的方式来描述,状态机的测试主要关注在测试状态转移的正确性上面。对于一个有限状态机,通过测试验证其在给定的条件内是否能够产生需要的状态变化,有没有不可达的状态和非法的状态,可能不可能产生非法状态转移等
- 通过构造能导致状态迁移的事件来测试状态之间的转换,常用于协议测试
- 用这种方法可以设计逆向的测试用例,如状态和时间的非法组合
三十三、状态迁移图法的使用步骤
- 画出状态迁移图(状态用圆圈表示,条件用线表现)
- 列出状态-事件表(一般为四列)
- 从状态转换树推导出测试路径
*根据测试路径编写合法测试用例
*编写非法测试用例
状态机:指定系统所有可能的状态以及状态相互跳转的条件。
状态:指对象在其生命周期中的一种状况,处于某一个特定状态中的对象必然会满足的某些条件,执行某些动作或者某些事件(动作的的表现、行为的表现)
触发条件:指引起状态的变迁,促使状态从一种状态转换到另外一种状态(动作、行为)
三十四、状态迁移图法的使用1
三十五、状态迁移图法的使用2
三十六、流程分析法的定义(广泛)
流程分析法(用例测试法/场景测试法)是将软件系统的某个流程看成路径,用路径分析的方法来设计测试用例。根据流程的顺序一次进行组合,使得流程的各个分支都能走到。这是从白盒测试中路径覆盖分析法中推广到黑盒测试中来的测试分析方法。
三十七、流程分析法的使用步骤
- 画出业务流程图
- 设置功能路径优先级
- 确定测试路径
- 选取测试数据
- 构造测试用例