梳理清楚逻辑关系https://www.61xiezuo.com/storage/article/2c/59341bc5b5a38fdfa907e3d61ffcf1.png在测试中分为黑盒测试和白盒测试,还有灰盒测试(白加黑),一般测试初学者基本从黑盒测试开始,进而学习白盒测试知识,运用白加黑可进行灰盒测试。下面主要谈一下黑盒测试的几种方法,对于测试初学者来说特别适用,很快就能上手,也是测试人员必备的基础技能之一。本文主要介绍等价划分法,边界值分析法,判定表法来进行测试。
一、等价类划分法
等价类根据SRS将需求合理划分片段,分成输入域的子集合,在子集合中,各个输入数据对于揭露软件中的错误都是等效的,并合理假定:测试某等价类的代表值就等于对这一类其他值的测试。在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据区的较好的测试结果。
(一) 等价类划分可有有效等价类和无效等价类。
1. 有效等价类:对于软件需求说明书(Software Requirements Specification,一下简称SRS)来说是合理的,有意义的输入数据的集合,检验功能和性能是否符合SRS.
2. 无效等价类:对于SRS是不合理的,没有意义的数据集合。
在有效等价类测试完成的基础上,一定要尽可能的注意无效等价类数据输入后,系统反馈的信息和处理方式,注意引导和反馈。
(二) 根据测试子项的特性对应的SRS片段,一下几条原则可供借鉴:
1. 在输入条件规定了取值范围或值的个数的情况下,则可以确定一个有效等价类和两个无效等价类
2. 在输入条件规定了输入值的集合或规定必须如何的条件情况下,可以确定一个有效等价等和一个无效等价类
3. 在输入条件事布尔量的情况下,可以确定一个有效和一个无效
4. 在规定可输入数据的一组值假定n个,并且程序要对每一个输入值分别处理的情况下,可以确立n个有效等价类和1个无效类
5. 在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类符合规则和若干个从不同角度违反规则。
6. 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类继续细分。
(三) 确定测试用例
三个原则:
1. 为每一个等价类规定一个唯一的编号
2. 设计一个新的测试用例,尽可能覆盖尚未被覆盖的有效等价类,直到所有等价类被覆盖
3. 设计一个新的测试用例,尽可能的覆盖尚未被覆盖的无效等价类,直到所有的无效等价类被覆盖
(四) 常见划分等价类的地方:
1. 数值范围
2. 重复次数
3. 字符串长度
4. 字符串组中的字符串的个数
5. 文件命名
6. 文件大小
7. 可用内存大小
8. 屏幕分辨率
9. 屏幕颜色种类
10. 操作系统版本
11. 超时时间
(五)测试案例如下:
1、在各种输入条件下,测试程序的登录对话框功能。
用户名和密码的规则如下:
• 用户名长度为6至10位(含6位和10位)
• 用户名由字符(a-z、A-Z)和数字(0-9)组成
• 不能为空、空格和特殊字符
密码规则同用户名规则
等价类表:
输入
有效等价类
无效等价类
用户名
长度为6至10位(11)
由字符(a-z、A-Z)和数字(0-9)组成(12)
<6(21)5
>10(22)11
空(23)
空格(24)
特殊字符(25)
不包含数字;大小写字母
密码
长度为6至10位(13)
由字符(a-z、A-Z)和数字(0-9)组成(14)
<6(26)5
>10(27)11
空(28)
空格(29)
特殊字符(2a)
测试用例:
编号
覆盖的等价类
用户名
密码
预期输出
1
11,12,13,14
User001
A12345
正常
2
21
user
asbfga
错误输入
3
22
User0111121
1235678
错误输入
4
23
A12adhg
错误输入
5
24
Sa12345
错误输入
6
25
User01#
QASDAAA
错误输入
7
26
Michel1
12
错误输入
8
27
Corsby01
A12345b12345
错误输入
9
28
wangyan
错误输入
10
29
User123
错误输入
11
2a
001user
As*ywg1
错误输入
二、 边界值分析法
定义:对等价类测试分析方法的补充。
使用条件:1.输入条件明确一个值的取值范围,或规定了值的个数
2.输入条件明确一个有序集合
边界点定义:
上点:就是边界上的点,不管是开区间还是闭区间
内点:就是在域范围内的任意一点
离点:就是离上点最近的一个点,如果边界是封闭的,那么离点就是域范围外离上点最近的点,如果边界是开放的,那么离点就是域范围内离上点最近的点。整数类型+1或-1;实数,认为选择一个精度,在这个精度下寻找最靠近的点。
边界值测试法中主要是选取离点和上点进行测试。
例如:用户名长度取值范围为[4,10],要选取的上点是4,10,离点是 3,11 用户名长度取值范围为(4,10),要选取的上点是4,10,离点 是5,9
三、判定表法
一、定义:输入复杂的逻辑体系和多种条件组合输入,进行判断,有以下四部分组成
1.1条件桩:列出了系统的所有输入,次序不总要
1.2动作桩:列出了系统可能采取的操作,顺序没有约束
1.3条件项:列出针对它左列输入的取值,在所有可能情况下的真假值
1.4动作项:列出在输入项的各种取值情况下应采取的动作
对判定表进行简化工作,以合并相似规则为目标。如果表中有2条或者多条规则具有相同规则,并且其条件项之间存在极为相似的关系,便可以将其合并。
二、如何使用判定表法:
1. 标识输入与输出。逐项分析测试子项的测试规格,找出其中的输入与输出并标识处理
2. 输入需要包括外部消息输入、内部预置的用户状态、数据配置等所有对系统输出有影响的因素
3. 输入和输出只涉及2种取值,可以只做一个标识出来。如果涉及多个取值,每个取值需要作为一个输入标识表示出来
4. 标识符可以自己确定,但是输入和输出需要独立标识。
二、构造判定表
将标识的输入条件桩部分,将标识的输出填入动作桩部分。条件项部分的列数为2的n次方,n为输入数。并从最右列到最左列从“NN….N”到“YYY…Y”填入条件项的所有组合。
三、逐列分析条件项组合,填入其动作项
根据条件项的取值情况和逻辑关系,得出取值结果合不合法。
四、简化判定表(可选)
将相似规则的列进行合并,以减少测试用例
案例:
1、对某手机的测试要求如下:
如果手机未欠费,并且开机,并且在服务区的情况下才可以正常通话。
请对该测试点设计测试用例。
条件项:
欠费:Y (yes); N(no)
开机:Y ; N
未简化的判定表如下
上表中可以看出用户欠费就不可以被主叫,所以我们可以把用户被停机的情况进行合并。
- ·简化后的判定表:
判定表法主要针对功能需求中的处理过程,处理过程越是复杂,越有必要使用判定表法。典型的控制系统如上下楼的电梯;游戏如扫雷游戏
优点:1.充分考虑了输入条件间的组合,对组合情况覆盖充分。
2.最终每个用例覆盖多种情况,有利于提高测试效率
3.设计过程中,对输入条件见的约束条件做了考虑,避免了无效用例,用例的有效 性高
缺点:1.当被测试特性输入较多时,判定表的规模将会非常庞大
2.输入间的约束条件不能够有效区分,会造成用例冗余