灰盒测试,是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。
灰盒(Gray Box)是一种
程序或
系统上的工作过程被局部认知的装置。灰盒测试,也称作灰盒分析,是基于对
程序内部细节有限认知上的
软件调试方法。测试者可能知道
系统组件之间是如何互相作用的,但缺乏对内部
程序功能和运作的详细了解。对于内部过程,
灰盒测试把
程序看作一个必须从外面进行
分析的
黑盒。
灰盒测试通常与web服务应用一起使用,因为尽管
应用程序复杂多变,并不断发展进步,
因特网仍可以提供相对稳定的接口。由于不需要测试者接触
源代码,因此
灰盒测试不存在侵略性和偏见。开发者和测试者间有明显的区别,人事冲突的风险减到最小。然而,
灰盒测试相对
白盒测试更加难以发现并解决潜在问题,尤其在一个单一的应用中,白盒测试的内部细节可以完全掌握。 灰盒测试结合了
白盒测试盒
黑盒测试的要素。它考虑了用户端、特定的
系统知识和操作环境。它在
系统组件的协同性环境中评价应用软件的设计。灰盒测试由方法和工具组成,这些方法和工具取材于
应用程序的内部知识盒与之交互的环境,能够用于黑盒测试以增强测试效率、错误发现和错误分析的效率。灰盒测试涉及输入和输出,但使用关于代码和程序操作等通常在测试人员
视野之外的
信息设计测试。