接上一篇,下来我们再细讲,第三个维度的分类,
1,黑盒测试(Black-Box Testing)

黑盒测试也是功能测试,测试中把被测的软件当成一个黑盒子,
不关心盒子的内部结构是什么,只关心软件的输入数据和输出数据。
我们来仔细剖析下这个概念的本质,这里有个误区,很多人总会觉得只要是不涉及到代码的就是黑盒测试,其实是不对的。
黑盒测试,主要是指我们看不到这个被测软件的代码的测试才叫黑盒测试。
怎么理解这句话?
举个例子,有个软件叫星球,我们针对星球的测试只要是看不到开发星球的代码。
这个时候只要不涉及到开发星球的代码测试都是黑盒测试,哪怕是你做的自动化写的代码,也是主要停留在功能层面,都是黑盒测试。
这里面额外提到一个特殊的存在就是性能测试。
如果从用户体验上去观察性能就属于黑盒测试,如果从代码层面去测试函数的资源占用和相应时间就属于白盒测试。
所以,你品,你细品!

2,白盒测试(White-Box Testing)

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测
试。白盒测试是指打开盒子,去研究里面的源代码和程序结果。
在很多公司,都其实不做白盒测试,哪怕是我在的很多一线的互联网大厂。除非在代码要求很高的时候,并且很多业务都很关键,比如涉及到金额等方面,会有部分公司要求白盒测试。比如测试JAVA的时候,会基于cucumber去写对应的fixture来进行单元测试。


还有一类就是做嵌入式,对一些C语言,涉及到内存泄漏,空指针等等,我们是要进行单元测试的。

3,灰盒测试(Gray-Box Testing)

灰盒测试是介于白盒测试和黑盒测试之间的一种,灰盒测试多用于集
成测试阶段,不仅关注输入、输出的正确性,同时也关注程序内部的
情况。
灰盒测试在业界是一个提及频率极低的存在,毕竟黑盒和白盒测试都是界限很分明,就是看是否涉及到源代码。
但是提到灰盒的时候,由于概念的模糊,很多人都是朦朦胧胧的,网上的资料(这里指的是可落地的方
案)是极少的。
这里通过涉及到一个灰盒的例子,目前是我找到最容易理解的,分享给大家:
#1) 如果测试人员在测试网站时单击链接并遇到错误,灰盒测试人员可以更改 HTML 代码以验证问题。
在这种情况下,白盒测试是通过修改代码来进行的,而黑盒测试是在测试人员测试前端的变化时同时进行的。灰盒测试是通过将白盒与黑盒相结合而产生的。
#2) 了解并访问错误代码数据库(包括每个错误代码的原因)的灰盒测试人员可以分析错误代码并更深入地探索原因。假设网页收到错误代码“内部服务器错误 500”,并且此问题的原因在表中列为服务器错误。
使用此信息,测试人员可以进一步调查问题并向开发人员提供详细信息,而不是简单地向他们报告。
#3) 灰盒测试人员可以检查日志文件以确定问题的根本原因。灰盒测试器可以简单地检查低性能、程序崩溃和其他问题。
本文介绍了软件测试中的黑盒、白盒和灰盒测试。黑盒测试关注输入和输出,不涉及代码;白盒测试则基于代码进行;灰盒测试结合了两者,既关注功能也考虑内部结构。性能测试从用户体验角度是黑盒测试,从代码层面则是白盒测试。在实际应用中,白盒测试常见于单元测试和对关键业务的测试。
1654

被折叠的 条评论
为什么被折叠?



