一、黑盒测试定义:
黑盒测试,也可以成为功能测试,把程序比喻成一个黑盒,不需要清楚了解具体的逻辑实现, 检查程序功能是否按照需求规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
二、黑盒测试方法:
黑盒测试的测试数据完全来源于软件规范或者需求,要发现程序的所有错误,判定标准是”【穷举输入测试】“;
【穷举输入测试】把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误,但事实上,考虑到经济效益,不可能把所有测试;
举个例子:
要测试一个登陆界面,输入账号和密码,账号是6-8位数字,密码是6-18位字符串,测试改程序输入合法性;
账号:6-8位,数字:0-9
有效的:6-8位0-9组合的账号,10的6次方+10的7次方+10的8次方。。。
无效的:小于6位、大于8位,
就一个账号的输入,就无穷个了;再加上密码的。。
基于简单一个例子,就如此多输入的用例,实际应用中的程序,穷举输入测试是无法实现的,
这有两方面的含义
一是我们无法测试一个程序以确保它是无错的,
二是软件测试中需要考虑的一个基本问题是软件测试的经济学。
测试投人的目标在于通过有限的测试用例,最大限度地提高发现的问题的数量,以取得最好的测试效果。
常见的黑盒测试方法如下:
Tables |
---|
1.等价类划分 |
2.边界类划 |
3.因果图法 |
4.错误测试 |
接下来,详细分析没种测试方法,以及结合实际的测试经验进行分析;
三、等价类划分
1.定义
等价类划分,是指将输入的数据划分成N个子集,然后从子集中选取具有代表性的数据作为测试用例,在子集中,各个输入数据对于测试程序功能是等价。(通俗来讲,就是分类,然后选代表)
等价类可以分为
- 有效等价类:合理的、有意义的,验证程序是否符合需求的功能;
- 无效等价类:合理的、无意义,验证程序处理意外数据的能力;
划分方法
输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类;
- 账号长度为6-8位,有效等价类:6-8位,无效等价类:小于6个,大于8个
- 输入个数为5个,有效等于5个,无效:小于5 or 大于5
输入条件规定了输入值的集合或“必须如何”的情况下,可以确定一个有效等价类和一个无效等价类‘
- 如字段类型规定为int;有效:int型, 无效:非int型
输入条件是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类
- 输入条件规定必须遵守某种规则的情况下,可以确定一个有效等价类和若干个无效等价类
- 输入为字母,有效:A-Z or a-z 无效:特殊字符、 中文、数字、
- 在规定了输入数据的一组值(假定N个),并且程序要对每个输入值分别处理的情况下,可以确立N个有效等价类和一个无效等价类
输入为台湾、北京、上海等一个地方 有效等价类:三个 无效:非三个中
在确知已划分的等价类中各元素中,则应再将该等价类进一步的划分为更小的等价类
- 如非int型,可继续细分:double型,string型等
2.举例
上面是比较理论的描述,下面结合理论来实践下
还是QQ账号和密码的输入为例
![QQ登录界面]
(https://img-blog.csdn.net/20151015175306117)
输入 | 有效 | 无效 |
---|---|---|
col 3 is | right-aligned | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |