软件测试中黑盒测试与白盒测试的区别
黑盒测试
又叫数据驱动测试,本质上就是功能测试。
把测试对象当做一个黑盒子,测试时,对程序内部的逻辑结构和内部特性,完全不需要考虑。根据需求说明书,测试程序的功能,是否符合它的说明
白盒测试
又称为结构测试或逻辑驱动测试。本质上就是通过代码检查的方式进行测试
把测试对象看做一个打开的盒子,测试人员用程序内部的逻辑结构、有关信息,设计或选择测试用例,对程序所有逻辑路径展开测试。在不同的点检查程序状态,确定实际状态,是否与预期的状态一致。
灰盒测试
是介于白盒测试与黑盒测试之间。
可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了。
这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法
区别 | 黑盒测试 | 白盒测试 |
---|---|---|
优点 | 1、能仔细考虑软件的实现。 2、可检测代码中的每条分支和路径 3、揭示隐藏在代码中的错误。 4、对代码的测试比较彻底 |
1、对于子系统甚至系统,效率要比黑盒测试高。 2、测试人员不需要了解实现的细节,包括特定的编程语言。 3、测试人员和编程人员彼此独立。 4、从用户的角度进行测试,很容易理解和接受。 5、有助于暴露规格的不一致或有歧义的问题。6、测试用例可以在规格完成后马上进行。 |
缺点 | 1、昂贵。 2、无法检测代码中遗漏的路径和数据敏感性错误。 3、不验证规格的正确性。 |
1、只有一小部分输入被测试到,要测试每个可能的输入几乎不可能。 2、没有清晰、简明的规格,测试用例很难设计。 3、如果测试人员不被告知开发人员已经执行过的用例,在测试数据上会存在不必要的重复。 4、有很多程序路径没有被测试到。5、不能直接针对特定程序段测试,而这些程序段可能很复杂,有可能隐藏更多的问题。 6、大部分和研究相关的测试都是直接针对白盒测试的。 |
灰盒测试与黑盒测试有哪些区别?
如果软件中,包含多个模块:
用黑盒测试,只需要关心整个软件系统的边界,无需关心软件系统内部,各个模块之间如何协作。用灰盒测试,就需要关心模块与模块之间的交互。
灰盒测试与白盒测试有哪些区别?
灰盒测试中,无需关心模块内部的实现细节。对于软件系统的内部模块,灰盒测试依然把它当成一个黑盒来看待。
白盒测试则不同,需要深入地了解内部模块的实现细节
如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的,都可以加入我们313782132。群内可领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!