黑盒测试,白盒测试与灰盒测试的比较和区别如下所示:
编号 | 黑盒测试 | 白盒测试 | 灰盒测试 |
---|---|---|---|
1 | 不需要了解内部工作结构(代码)。测试用例只需要GUI(图形用户界面)。 | 测试需要了解内部工作结构(软件编码)。 | 部分了解内部工作结构。 |
2 | 黑盒测试也称为功能测试,数据驱动测试和封闭盒测试。 | 白盒测试也称为结构测试,透明盒测试,基于代码的测试和透明测试。 | 灰盒测试也称为半透明测试,因为测试人员对编码知识有限。 |
3 | 测试方法包括试验技术和错误猜测方法,因为测试人员不需要知道软件的内部编码。 | 通过验证软件中固有的系统边界和数据域来进行白盒测试,因为不缺乏内部编码知识。 | 如果测试人员具有编码知识,则通过验证软件的数据域和内部系统边界来进行。 |
4 | 输入表的测试空间(用于创建测试用例的输入)非常庞大,在所有测试空间中最大。 | 与黑盒测试相比,输入表的测试空间(用于创建测试用例的输入)较少。 | 输入表的测试空间(用于创建测试用例的输入)小于黑盒和白盒测试。 |
5 | 发现软件的隐藏错误非常困难,因为错误可能是由于黑盒测试未知的内部工作造成的。 | 发现隐藏错误很简单,因为它可能是由于内部工作,这在白盒测试中得到了深入探索。 | 很难发现隐藏的错误,可在用户级测试中找到。 |
6 | 它不适用于算法测试。 | 它非常适合并推荐用于算法测试。 | 它不被考虑用于算法测试。 |
7 | 黑盒测试中的时间消耗取决于功能规范的可用性。 | 由于冗长的代码,白盒测试需要很长时间来设计测试用例。 | 测试用例设计可以在短时间内完成。 |
8 | 测试人员,开发人员和最终用户可以参与测试。 | 只有测试人员和开发人员才能参与测试; 最终用户不能涉及。 | 测试人员,开发人员和最终用户可以参与测试。 |
9 | 这是所有测试过程中耗时最少的过程。 | 在所有测试过程中,整个测试过程是最耗时的。 | 比白盒测试耗时更少。 |
10 | 黑盒测试涵盖了抵御病毒攻击的弹性和安全性。 | 白盒测试不包括针对病毒攻击的弹性和安全性。 | 灰盒测试不包括针对病毒攻击的弹性和安全性。 |
11 | 黑盒测试的基础是外部期望内部行为未知。 | 灰盒测试的基础是编码,负责内部工作。 | 基于高级数据库图表和数据流图进行测试。 |
12 | 它不像白盒和灰盒测试方法那么详尽。 | 黑盒和灰盒测试方法之间最为详尽。 | 部分详尽; 取决于基于编码或基于GUI的测试用例的类型。 |