浅谈“灰盒”测试

发表于:2011-6-14 14:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  “灰盒”测试方法是指综合“白盒”测试和“黑盒”测试的测试方法。“白盒”测试又称结构测试,在测试过程中测试者可以看到被测的源程序,通过分析程序的内部结构,根据其内部结构设计测试用例。理想的“白盒”测试应该使选取的测试用例覆盖所有的路径,然而,这是不可能的,而且“白盒”测试不关注测试程序的外部功能。“黑盒”测试又称功能测试,在测试过程中被测程序被视为黑盒,测试者在完全不考虑程序内部结构和内部特征(或对于上述信息无从获知)的情况下,根据需求规格说明书设计测试用例和推断测试结果的正确性。“黑盒”测试的不足在于,测试用例的选择只考虑了程序的输入,以及在该情况下的输出,并没有考虑程序的内部结构。因此,程序内部结构是否规范、结构化程度的好坏、系统的性能如何等都得不到测试。

  “白盒”测试和“黑盒”测试各有其自身的特点,但也都存在着明显的不足,主要表现在只考虑了程序某一方面的属性和特征,没有综合考虑。要进行较全面的程序测试,不得不把测试工作分两次进行,用“白盒”测试方法测试一次,再用“黑盒”测试方法测试一次。这不但浪费时间,而且测试的效果不一定好。“灰盒”测试正是基于这一点提出的。

  “灰盒”测试是一种综合测试法,它将“黑盒”测试、“白盒”测试结合在一起,构成一种无缝测试技术。“灰盒” 测试以程序的主要性能和主要功能为测试依据,测试方法主要根据程序的程序图、功能说明书以及测试者的实践经验来设计。这里所说的主要性能和主要功能凭借测试者的经验来确定,即可以把容易发生错误的变量域及程序图(非流程图)作为测试的内容,而把那些不容易发生错误的变量输入和流程图中的不影响或不改变内部逻辑的细节忽略。事实上,许多测试工作是在不完全了解程序的内部逻辑的情况下进行的,这也就是“灰色”的由来。

  同时,“灰盒”测试涉及输入和输出,但通常使用关于代码和程序操作等在测试人员视野之外的信息设计测试。在现在的测试工程中,最常见的“灰盒”测试是集成测试。但是“灰盒”测试的概念已经由原来单一的“黑盒”测试和“白盒”测试的一些测试方法的简单叠加,衍生出许许多多新颖的分析方法。

  跟“黑盒”测试和“白盒”测试相比,“灰盒”测试有以下特性:

  ● “灰盒”测试通常是在集成测试前期进行的,“灰盒”测试通常在程序员做完“白盒”测试之后,在功能测试人员进行大规模集成测试之前进行的。

  ● “灰盒”测试需要了解代码工程的实现。

  ● “灰盒”测试是通过类似“白盒”测试的方法进行的,是通过编写代码,调用函数或者封装好的接口进行的。

  ● “灰盒”测试是由测试人员进行测试的。

  在软件测试领域,对“灰盒”测试的应用属于比较新型的尝试,它打破了长久以来“黑盒”和“白盒”测试技术在这一领域的统治地位。DO-178B规范也新进加入了利用“灰盒”测试方法来进行作业的标准。

  下面是根据一个实例来介绍一种传统的“白盒”测试与“黑盒”测试相结合的“灰盒”测试方法的应用。

  (1) 阅读需求

SDRD26537 (Software Design Requirement Document)

Requirement: Yes

Delivery: AESS

Magnetic Heading shall be ser invalid if value outside range of -180 inclusive and 180 exclusive.

[/TCAS TPA-100X/Tests]

  需求要求飞机在巡航过程中它的有效磁场角度范围为[–180,180]。(因为这是航空领域的实例,有些是专业术语或缩写,但这不影响阅读)

  (2) 分析需求

  这个例子很简单,根据分析,测试人员优先选择“黑盒”测试方法的边界值分析方法,并确定取值范围为[-180,180]。设计一个健壮最坏情况边界值分析测试用例如下:–180.1, –180.0, –179.9, –1.0, 0.0, 1.0, 180.0, 179.9 。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号