基于黑盒测试与白盒测试的比较探究

2021-06-30 01:43西北民族大学数学与计算机科学学院妥泽花
电子世界 2021年11期
关键词:白盒黑盒测试人员

西北民族大学数学与计算机科学学院 妥泽花

随着IT行业的高速发展,软件的开发已经成为助力提升国家经济水平的重要手段。与此同时,软件产品的升级也成为公司提升软件产品自身价值的不二选择。软件升级的本质是功能的提升与完善,如何评判软件产品的好与坏,软件测试是必不可少的环节。本文主要针对软件测试方法中的黑盒测试与白盒测试进行比较探究,研究这两种截然不同的测试方法对软件产品的测评影响。

1 黑盒测试介绍

黑盒测试其实是我们平常所说的“功能测试”,它主要测试的是产品功能是否可以实现,不在乎产品内部的结构,只针对产品的功能做出检测评价。测试过程中,通常会将程序看作一个不能打开的黑盒子,在测试人员无法从外面看见产品内部结构的情况下,对软件界面和软件功能进行测试。由于无法看清产品的内部结构,《软件需求规格说明书》成为帮助软件测试人员明确测试目标的主要依据。

2 白盒测试介绍

白盒测试又被称为“透明盒测试”或“结构测试”。在测试时,将程序看作一个“白盒子”(或“透明盒”),程序的内部结构透明化,对软件产品进行测试。但有一个必要条件,那就是,测试人员在测试之前必须对产品的内部结构进行熟悉和掌握,从而通过各种编程语言设计测试用例,实现软件的测试。测试大部分情况下,都是对数据的引用与定义进行数据测试。其次,还包括对程序的逻辑路径进行覆盖测试。

3 比较探究

众所周知,黑盒测试与白盒测试是软件测试方法中两种相对的方法。对于不同的程序、开发软件应使用不同的测试方法对其进行测试。用何种测试方法主要取决于软件产品的功能设计、逻辑设计等。现对如何从这两种测试方法中进行选择做出探究。

3.1 测试出发点不同

随着软件技术的不断成熟与完善,软件测试的规模和复杂度在不断地加大,软件测试也逐渐形成了一套完整的体系,逐渐走向规范化。

从两者的定义出发,黑盒测试的测试出发点就比较明确了,即功能是否可以实现。由于无法得知产品的逻辑结构,所以这种方法不能帮助测试人员进行全面的测试。而白盒测试则不同,白盒测试的测试出发点是:根据产品的内部结构测试产品的功能是否可以实现。因测试人员对产品有了事先的了解,所以测试人员可以将测试的过程更加精细化、完整化。

显而易见,这两种测试方法的测试出发点确实是不同的,这使得两种方法在进行测试时的关注点也不同,继而侧重点也会有所差异的。使用不同的测试方法,设计测试用例的思路基本上都是固定的。这种固定思维有时可以帮助测试人员更快的制定测试用例,但有可能会阻碍测试人员发现一些比较容易忽视的错误。

3.2 测试覆盖范围不同

有测试经验的人员肯定知道黑盒测试和白盒测试的测试覆盖范围是不同的。即便是同一个程序,用不同的测试方法所设计的测试用例也是不同的。为什么会有所差异呢?下面做出具体分析。

首先,软件规格说明书(Specification)是黑盒进行测试的依据。因此,软件规格说明书中所记录的功能需求、性能需求是它设计测试用例的主要依据。软件规格说明书中要求的多少也就决定了黑盒测试设计用例的多少。

与黑盒测试不同,白盒测试会更加关注代码本身,所以测试用例的数量与代码的复杂程度、代码的数量等息息相关。这些因素,不仅使测试用例的数量剧增,更使得测试任务所需要的执行时间剧增,极大可能会使测试人员无法按时完成测试任务。

从理论的角度上讲,白盒测试是可以进行完全的覆盖测试的。但是,由于其他未知的、无法控制的因素,可能很难作到全面覆盖。不过,它依旧是项目研发验证测试覆盖率的重要手段。

可以得出,白盒测试的覆盖范围是广而全,即覆盖面广、测试全面;而黑盒测试的覆盖范围则是准而明,即测试用例精准、设计目标明确。虽然白盒测试更加全面,但黑盒测试也有属于它的优点。因为黑盒测试设计的测试用例数量较少,所以可以有效缩减测试时间,并且降低测试成本。

3.3 对测试人员的要求

两种测试方法对测试人员的要求如表1所示。

表1 两种测试方法对测试人员的不同要求

看过两种测试方法对测试人员的要求的人可能会说,黑盒测试不需要研究代码,那黑盒测试肯定比白盒测试简单。事实并非如此,有时候黑盒测试比白盒测试更加具有挑战性。由于对内部结构的不清楚,就会加大测试的难度。通过对IT行业测试人员数量的探究发现,有很多转行的人,都会选择做“黑盒测试”,因为它的起点比较低,更容易上手,但是要想更好的完成测试还是需要专业的测试人员。

3.4 适用阶段不同

软件开发是有阶段性的,软件的开发是一步步发展而来的,从无到有,这是需要过程的。按照开发过程的时间进行划分,可以将其划分为前、中、后期三个阶段。这三个阶段对软件开发人员的要求不同,对软件测试人员的要求也不同。而这两种相对的测试方法也在不同的阶段发挥着它们的作用。具体情况,如图1所示。

图1 软件开发阶段两种测试方法的使用情况

在软件开发的前期阶段,主要进行需求分析、概要设计以及详细设计。前期的代码量并不是很多,测试人员一般会采用白盒测试进行测试,通过它可以更好的完成测试任务。前期会根据客户需求所书写软件的需求说明书和设计文档进行测试,故而,前期的测试任务是十分重要的,它不仅关系到客户的直接利益,更对后面的工作有不可忽视的影响。前面做好了,可以很大程度的帮助测试人员完成之后的任务,也可以有效的避免一些不必要的软件缺陷。最重要的一点是,前期测试发现的问题越多,修复所需要的花费也就会越少。因为前期的修复并没有那么复杂,成本相对后期就会较低。

在中期,一般都是将两种方法相结合的方式进行测试。这种联合使用会帮助测试人员更快找到出现的错误和问题。

到了开发阶段的后期,会进行系统测试和确认测试,这个时候黑盒测试就发挥了极其重要的作用。后期的检查更加注重软件产品功能的完整性和可使用性。利用黑盒测试可以更高效、更准确的测试软件的功能及其使用情况。后期就会从“用户”的角度进行试测,作为用户肯定会更加注重产品的使用体验。因此,黑盒测试在系统测试和确认测试中起着无法替代的作用。

尽管每个阶段用到的方法不同,但每个阶段所使用的方法也不是一成不变的,这要根据软件自身的要求进行选择。两种方法相辅相成,往往会使得测试更加完美。

结语:软件测试贯穿于软件开发的整个过程中,测试过程中产生的问题不一定都是由程序员编写的代码所引起的,也有可能是由于前期阶段的需求分析不到位,逻辑结构设计不合理等导致的。所以,在开发的过程中要不断地进行测试,并作好编写测试报告的工作,从而帮助开发团队顺利推进开发工作。软件测试人员就像是整个项目过程中“后勤保障”,时时刻刻存在,是不可缺少的一部分。

根据从两种测试方法的测试出发点、覆盖范围、适用阶段及对测试人员的要求的研究可以发现两者之间的不同。黑盒测试尽管是不同于白盒测试的测试方法,但是可以看出白盒测试其实是对黑盒测试的补充与完善。选择哪种测试方法取决于软件的需求规格说明书。在测试一个软件产品时,可能会选择其中一种方法进行测试,但大多数的情况下,需要将这两种方法相结合起来进行测试。测试人员尽可能多的发现Bug,就会更好地帮助开发人员完成他们的编码工作。如何进行选择,需要根据测试任务的需求进行抉择。选择时也可以参考一些开发人员的意见,并且把保障软件质量放在第一位。

猜你喜欢
白盒黑盒测试人员
移动应用众包测试人员信誉度复合计算模型研究
一种基于局部平均有限差分的黑盒对抗攻击方法
面向未来网络的白盒交换机体系综述
DWB-AES:基于AES 的动态白盒实现方法
网络“黑”“白”之争
高校分析测试中心测试队伍建设方案初探
浅析软件测试中的心理学应用
基于EEPROM数据读写的智能电能表白盒测试方法
犯罪心理测试人员素质要求分析