目录
黑盒测试
- 黑盒测试把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程,只在软件接口处进行测试,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。测试人员完全不考虑程序内部的逻辑结构和内部特性,因此黑盒测试又叫做功能测试或数据驱动测试。
- 黑盒测试通过软件的外部表现来发现其缺陷和错误。
- 黑盒测试是在程序界面进行测试,它只是检查程序是否按照需求规格说明书的规定正确实现。
- 如果软件需求本身有问题或规格说明书有误,用黑盒测试方法是很难发现的。
特点
- 从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出程序中所有的错误。
- 实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但可能的输入进行测试。完全是不可能的。
黑盒测试方法在程序接口上进行测试,目的是发现以下几类错误:
- 是否有不正确或遗漏了的功能?
- 在接口上,输入能否正确地接收?能否输出正确的结果?
- 是否有数据结构错误或外部信息(例如数据文件)访问错误?
- 性能上是否能够满足要求?
- 是否有初始化或终止性错误?
- 用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。采用黑盒技术测试用例的方法包括,等价类的划分、边界值分析、错误推测和因果图、场景分析法(流程分析法)。
1.等价类的划分
是将输入数据按有效或无效的(也称合理的或不合理的)划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值的测试。这样就把漫无边际的随机测试改为有针对性的等价类测试,用少量有代表性的例子代理大量测试目的相同的例子,能有地提高测试效率。但这个方法的缺点是没有没有注意选择某些高效地,能够发现更多错误的测试用例。
等价类划分是一种典型的黑盒测试。
等价类划分法--化无限为有限
等价类划分的办法是把程序的输入域划分成若干等价类,然后从每个部分中选取少数代表性数据当做测试输入数据。
使用少数测试数据检验程序在一大类情况下的反映。
等价类
某个输入域的集合,在这个集合中每个输入条件都是等效的,如果其中一个的输入不能导致问题发生,那么集合中其它输入条件进行测试也不可能发现错误。
有效等价类
有效等价类指的是对程序的规范是有意义的、合理的数据数据所构成的集合。
在具体问题上,有效等价类可以是一个,也可以是多个。
无效等价类
指对程序的规范是不合理的或无意义的输入数据所构成的集合。
对于具体的问题无效等价类至少应有一个也可能有多个。
等价类划分方法(一)
- 如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。
- 例如:程序的输入项n满足“从1到999”
则可取有效等价类为“1<=n<=999”
无效等价类为“n<1,及n>999”
等价类划分方法(二)
- 输入条件规定了输入值的集合,或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。
- 例如:某标识符,条件规定“以字符开头”
则有效等价类为“以字母开头”
无效等价类“以非字母开头”
等价类划分方法(三)
- 如果已划分的等价类中各元素在程序中的处理方式是不同的,则应将此等价类进一步划分成更小等价类
- 例如:
a)-10<n<10
b)m/n
等价类划分方法(四)
- 在输入条件是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类。
- 例如:界面输入只提供单选框,是与否
等价类划分方法(五)
- 在规定了输入数据的一组值(n),并且程序要对每一个输入值分别处理的情况下,可确定n个有效等价类和一个无效等价类
- 例如:省份【 】 #若是填不是下拉框 ,可以提bug
等价类划分方法(六)
- 在规定了数据数据必须遵守多个规则的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
等价类表
- 根据等价类划分原则,将等价类填入下表:
输入条件 | 有效等价类 | 无效等价类 |
根据等价类表生成测试用例
- 根据等价类表,然后从划分出的等价类中按以下三个原则设计测试用例。
- 为每一个等价类规定一个唯一的编号。
- 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
- 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
等价类分析法实例
注册邮箱邮箱名要求6~18个字符,可使用字母、数字、下划线,需要以字母开头。用等价类方法,划分等价类
根据原则划分等价类,填入等价类表
等价表 | ||
输入条件 | 有效等价类 | 无效等价类 |
邮箱名 | 6~18个字符(1) | 少于6个字符(2) 多余18个字符(3) 空(4) |
包含字母、数字、下划线(5) | 除字母、数字、下划线的特殊字符(6) 非打印字符(7) 中文字符(8) |
|
以字母开头(9) | 以数字或下划线开 |