文章目录
- 黑盒测试:又被称为功能测试或数据驱动测试。测试过程中不考虑程序内部结构和内部特性
- 采用黑盒测试的目的:主要是在已知软件产品所应具有的功能的基础上
- 由于黑盒测试不需要了解程序内部结构,所以许多高层测试,如确认测试、系统测试、验收测试都采用黑盒测试
- 黑盒测试的优点:
(1)定位准确,有针对性的找问题
(2)黑盒测试可用于确定产品是否达到用户功能
(3)能重复执行相同的操作,可采用自动化测试 - 黑盒测试的缺点
(1)需充分了解产品用到的技术,对测试人员的技能要求高
(2)测试过程中手工操作多
(3)测试人员需负责大量文档 - 黑盒测试测试用例设计的方法
(1)等价类划分。
(2)边界值划分。
(3)错误推测法。
(4)因果图法。
(5)正交表实验法。
(6)场景图。
(7)功能图
1. 等价类划分
- 划分:指互不相交的一组子集,这些子集的并是整个集合
- 等价类:指某个输入域的子集合。在该子集合中,各个输入数据对于揭示程序中的错误都是等效的,或者进行相同的处理
- 等价类划分设计方法:把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每个子集中选取少量有代表性的数据作为测试用例
- 在设计测试用例时,在需求说明的基础上划分等价类,列出等价表,从而确定测试用例
- 有效等价类:有意义的、合理的输入数据的集合。用以检验程序是否实现了规格说明预先规定的功能和特性
- 无效等价类:无意义的、不合理的输入数据的集合。用以检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方
- 划分等价类的标准:
(1)完备测试、避免冗余。将整个集合划分为互不相交的子集(无冗余性)。子集的并是整个集合(完备性)
(2)同一类标识选择一个测试用例。同一等价类中,往往处理相同,相同处理映射到“相同的执行路径” - 等价类划分的步骤
(1)先考虑输入数据的类型(合法型和非法型)
(2)再考虑数据范围(合法型中的合法区间和非法区间)
(3)画出示意图,区分等价类(有效、无效)
(4)为每一个等价类编号。
(5)考虑输出,进行补充
2. 等价类划分的原则
2.1 按照区间划分
- 按照区间划分:在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类
2.2 按照数值划分
- 按照数值划分:在规定了一组输入数据(假设包括 n个输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)
2.3 按照数值集合划分
- 按照数值集合划分:在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)
2.4 按照限制条件或规则划分
- 按照限制条件或规则划分:在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
2.5 细分等价类
- 细分等价类:在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表
3. 等价类划分设计测试用例的类型
- 等价类划分设计测试用例划分的步骤
(1)确定等价类
(2)建立等价类表,列出所有划分出的等价类
(3)从划分出的等价类中按以下的3个原则设计测试用例:
A 为每一个等价类规定一个唯一的编号
B 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
C 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止 - 针对是否对无效数据进行测试,可将等价类测试分为:标准等价类测试(一般等价类测试)、健壮等价类测试
- 标准(一般)等价类测试:
(1)不考虑无效数据值,测试用例使用每个等价类中的一个值
(2)标准等价类测试用例的数量和最大等价类中元素的数目相同 - 健壮等价类测试:考虑了无效等价类
(1)对于有效输入,测试用例从每个有效等价类中取一个值
(2)对于无效输入,一个测试用例有一个无效值,其他值均取有效值
存在问题
(1)规格说明往往没有定义无效测试用例的期望输出,因此需要定义这些用例的期望输出
(2)对强类型语言没有必要考虑无效输入。(强类型语言的无效值输入会引起系统运行出错)
- 根据测试用例的完整性可分为: 弱等价类与强等价类测试
- 弱健壮等价类中的有效测试用例使用每个有效等价类中的一个值。弱健壮等价类中的无效测试用例只包含一个无效值,其他都是有效值,即含有单缺陷假设
- 强健壮等价类测试考虑了更多无效值的情况。强健壮等价类测试中的无效测试用例可包含多个无效值,即包含多个缺陷假设。所以对应的强健壮等价类测试用例可包含一个无效值、两个无效值或三个无效值
例
4. 等价类划分的测试运用
4.1 例一
4.2 例二
4.3 例三
4.4 例四
4.5 例五
4.6 例六
4.7 例七
4.8 总结
- 如果实现的语言是强类型语言(无效值输入会引起系统运行时出错),则没有必要使用健壮等价类测试。
- 在发现合适的等价关系之前,可能需要许多次的尝试。
- 如果错误输入检查非常重要,则应进行健壮等价类测试。
- 如果输入数据以离散区间或集合的形式定义,则等价类测试是合适的,当然也适用于变量值越界会造成故障的系统。
- 等价类划分就是解决如何选择适当的数据子集来代表整个数据集的问题,通过降低测试的数目去实现“合理的”覆盖,覆盖了更多的可能数据,以发现更多的软件缺陷。
- 等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。利用这一方法设计测试用例可以不考虑程序的内部结构,以需求规格说明书为依据,选择适当的典型子集,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。等价类划分法是一种系统性的确定要输入的测试条件的方法