学术性的定义—什么是灰盒:

灰盒是一种程序或系统上的工作过程被局部认知的装置。灰盒测试测试,也称作灰盒分析,是基于对程序内部细节有限认知

上的软件调试方法。

 

为什么需要灰盒测试: 

灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试

效率、错误发现和错误分析的效率。它是介于白盒测试与黑盒测试之间的,灰盒测试关注输出对于输入的正确性,同时也关

注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时

候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取

这样的一种灰盒的方法。

 

灰盒测试的好处:

测试者可能知道系统组件之间是如何互相作用的,但缺乏对内部程序功能和运作的详细了解。对于内部过程,灰盒测试把程

序看作一个必须从外面进行分析的黑盒。灰盒测试通常与web服务应用一起使用,因为尽管应用程序复杂多变,并不断发展

进步,因特网仍可以提供相对稳定的接口。由于不需要测试者接触源代码,因此灰盒测试不存在侵略性和偏见。开发者和测

试者间有明显的区别,人事冲突的风险减到最小。

 

目的:

一、确认软件的质量

二、提供信息,提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。

三、软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。

 

测试任务:

1、寻找Bug;

2、避免软件开发过程中的缺陷;

3、衡量软件的品质;

4、关注用户的需求。

 

 PS

黑盒测试:

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在

测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试

,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并

且保持外部信息的完整性。

 

白盒测试:

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书

的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能

,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。