学术性的定义—什么是灰盒:
灰盒是一种程序或系统上的工作过程被局部认知的装置。灰盒测试测试,也称作灰盒分析,是基于对程序内部细节有限认知
上的软件调试方法。
为什么需要灰盒测试:
灰盒测试由方法和工具组成,这些方法和工具取材于应用程序的内部知识和与之交互的环境,能够用于黑盒测试以增强测试
效率、错误发现和错误分析的效率。它是介于白盒测试与黑盒测试之间的,灰盒测试关注输出对于输入的正确性,同时也关
注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时
候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取
这样的一种灰盒的方法。
灰盒测试的好处:
测试者可能知道系统组件之间是如何互相作用的,但缺乏对内部程序功能和运作的详细了解。对于内部过程,灰盒测试把程
序看作一个必须从外面进行分析的黑盒。灰盒测试通常与web服务应用一起使用,因为尽管应用程序复杂多变,并不断发展
进步,因特网仍可以提供相对稳定的接口。由于不需要测试者接触源代码,因此灰盒测试不存在侵略性和偏见。开发者和测
试者间有明显的区别,人事冲突的风险减到最小。
目的:
一、确认软件的质量
二、提供信息,提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。
三、软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。
测试任务:
1、寻找Bug;
2、避免软件开发过程中的缺陷;
3、衡量软件的品质;
4、关注用户的需求。
PS
黑盒测试:
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在
测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试
,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并
且保持外部信息的完整性。
白盒测试:
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书
的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能
,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。