首页 > 编程知识 正文

黑盒测试是基于什么的测试(白盒测试及测试用例设计)

时间:2023-05-06 14:04:54 阅读:104321 作者:954

概述

单元测试的测试数据可以通过两种基本方法系统构建。首先是规范测试,也叫黑盒测试(行为测试、黑盒测试、功能测试、输入输出驱动测试)。在这种方法中,不管代码本身如何,在准备测试用例时使用的唯一信息就是规范文档。另一种是代码测试,在选择测试用例时会忽略规范文档。这项技术也被称为白盒测试(结构测试、逻辑驱动测试和面向路径测试)。

规格说明测试的可行性:

考虑以下示例。假设一个数据处理产品的规格说明表明它必须包含5种佣金和7种折扣。只测试每一个可能的佣金和折扣的组合都需要35个测试用例,说佣金和折扣是在两个完全独立的模块中,所以独立测试是没有用的,因为产品在黑盒测试中被当作一个黑盒,它的内部结构是完全无关的。因此,彻底的规格测试在实践中是不可能的,因为它的组合会爆炸。

00-1010代码测试最常见的形式要求模块通过的每个路径至少执行一次。测试中的所有路径都是不可靠的,因为有这样一个产品,一些数据测试一个给定的路径会检测到错误,而不同的数据测试同一个路径不会检测到错误。然而,面向路径的测试是有效的,因为它并不固有地排除可能揭示错误的测试数据的选择。

由于组合爆炸,彻底的规范测试或彻底的代码测试是不可行的。因此,在使用会揭示尽可能多的错误的技术的同时,我们也承认,没有办法保证所有的错误都被检测到。一个合理的继续方法是先使用黑盒测试用例,然后使用白盒测试来开发额外的测试用例。

00-1010彻底的黑盒测试通常需要几千亿个测试用例,所以测试技巧就是设计一个小的、可管理的测试用例集,这个测试用例集检测到一个错误的机会最大,同时允许多个测试用例检测到同一个错误,最大限度地减少浪费一个测试用例的机会。一种这样的黑盒技术是结合边界值分析的等价测试。

1.等效试验和边界值试验

假设数据库产品的规格说明表明该产品必须能够处理从1到16,383的任何记录。例如,如果该产品可以处理34条记录和14,870条记录,那么它很可能可以很好地处理8,252条记录。因此,产品可以处理的指定记录范围可以定义三个等价类:少于一个记录、从1到16383个记录和多于16383个记录。

一个成功的测试用例可以检测到以前未检测到的错误。为了最大化发现这个误差的机会,一种有效的技术是边界值分析。

因此,总而言之,在测试这个数据库产品时,应该选择七个测试用例:

0记录:等价类1的成员,靠近边界值。

1记录:边界值。

2条记录:接近边界值。

4 723条记录:等价类2的成员。

16382记录:接近边界值。

16383记录:边界值。

16384记录:等价类3的成员,接近边界值。

等效性测试的过程总结如下:

对于输入和输出规格

对于每个范围(l,u):

选择五个测试用例:小于l、等于l、大于l但小于u、等于u和大于u。

对于每组s:

选择两个测试用例:一个S元素和一个非S元素。

对于每个精确值p:

选择2个测试用例:P和任何其他值。

2.功能测试

黑盒测试的一种可选形式是根据模块的功能选择测试数据。在功能测试中,需要区分每个功能项或模块中实现的功能。

00-1010在玻璃盒子测试技术中,测试用例的选择是基于代码的检查,而不是规范的检查。有一些不同形式的玻璃盒子测试,包括语句、分支和路径覆盖。

1.结构测试:语句、分支和路径覆盖

玻璃盒子测试最简单的形式是语句覆盖,即运行一系列测试用例,在此期间每个语句至少执行一次。这种方法的缺点是不能完全测试分支的所有输出。

语句覆盖的一个改进是分支覆盖,即运行一系列语句来确保所有分支至少被测试一次。

像语句或分支覆盖这样的技术变成了结构测试。

结构测试最强大的形式是路径覆盖,也就是测试所有的路径。

2.复杂性度量

质量保证观点提供了玻璃盒单元测试的另一种方法。假设一个尊敬的镜像被告知代码模块m1比代码模块m2更复杂,无论复杂性这个术语定义得多么准确,尊敬的镜像都凭直觉认为m1可能比m2有更多的错误。按照这种思路,计算机科学家开发了一些软件复杂性度量方法来帮助确定哪个代码模块更有可能出错。如果发现代码模块的复杂性高得不合理,受尊敬的魔镜可能会直接请求重新设计并重新实现它。与尝试调试错误的代码模块相比,从头开始可能更便宜、更快。

万水千山总是在恋爱,你能关注一下吗~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。