灰盒测试的定义:
l 1999年,美国洛克希德公司发表了灰盒测试的论文,提出了灰盒测试法。
l 单纯从名称上来看,灰盒测试是介于黑盒测试和白盒测试之间的一种测试方法。
l 灰盒测试是基于程序运行时的外部表现同事有结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。
灰盒测试和黑盒测试的区别:
如果某软件包含多个模块,当你使用黑盒测试时,你只要关心整个软件系统的边界,无需关心软件系统内部各个模块之间如何写作。而如果使用灰盒测试,你就需要关心模块与模块之间的交互。这事灰盒测试与黑盒测试的区别。
灰盒测试和白盒测试的区别:
在回合测试中,无需关心模块内部的实现细节。对于软件系统的内部模块,回合测试依然把它当成一个黑盒来看待。而白盒测试还需要再深入地了解内部模块的实现细节。
灰盒测试和单元测试的区别:
首先,在进行单元测试时,需要歇一歇测试代码。通常测试代码和被测代码通常是同种语言,且测试代码和被测试代码的耦合很紧密。因此,单元测试通常有开发人员来完成的,测试人员的能力未必能胜任。
优点:
- 能够进行基于需求的覆盖测试和基于程序路径覆盖的测试;
- 测试结果可以对应到程序内部路径,便于bug的定位、分析和解决;
- 能够保证设计的黑盒测试用例的完成性,防止遗漏软件的一些不常用的功能或功能组合;
- 能够降低需求或设计不详细或不完整对测试造成的影响
- 投入的时间比黑盒测试大概多20-40%的时间;
- 对测试人员的要求比黑盒测试高,灰盒测试要求测试人员清楚内部有哪些模块构成,模块之间如何写作。
- 不如白盒测试深入;
- 不适合用于简单的系统。由于灰盒测试关注与内部模块之间的交互。如果某个系统简单到只有一个模块,那就没必要进行回合测试了。
缺点:
- 投入的时间比黑盒测试大概多20-40%的时间;
- 对测试人员的要求比黑盒测试高,灰盒测试要求测试人员清楚内部有哪些模块构成,模块之间如何写作。
- 不如白盒测试深入;
4. 不适合用于简单的系统。由于灰盒测试关注与内部模块之间的交互。如果某个系统简单到只有一个模块,那就没必要进行回合测试了。