测试分类-黑白灰测试

大家好,我是十一。


今天我们聊聊测试的种类-黑白灰测试。那测试到底怎么分类呢?

直接上图吧,我为大家精心准备了个大图,要认真看哦~来之不易~软件测试分类.png


注:功能测试部分是按照重要程度以及先后顺序做的排序。


乍一看,你的心情是不是这样式儿的?

2.png


图片来源:百度

莫方哈,其实这张图只是按照不同纬度给测试分类而已,并不是说明有这么多种测试,重叠部分还是比较多的,但是这张图呢需要大家理解并牢记的,因为面试、工作都是常用的呢~接下来我们会用丰富的例子带大家一一理解这张图。


如题:此篇呢我们讲解黑盒、白盒、灰盒测试(所谓黑白灰)的含义以及区别

其他的呢我们都放在后续篇章,用例子一一为大家串讲。


好了进入正题。


黑、白、灰三盒测试的含义及区别


根据上图可以看出按照是否查看内部代码/结构,我们将软件测试分为黑盒测试、白盒测试、灰盒测试。


黑盒测试(Black-box Testing)


    黑盒测试又被称为功能测试、数据驱动测试或基于需求规格说明书的测试是通过使用整个软件或某种软件功能来严格地测试。测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。主要针对软件界面和软件功能进行测试。

    在黑盒测试中,软件测试工程师只需要知道软件要做什么-而无法看到盒子里的软件是如何运行的。只要进行一些输入,就能得到某种输出结果。来个例子:我们对QQ的登陆功能进行测试,那账户名输入11,密码输入11(此用户不存在),如下图所示

3.png


然后点击“登陆”按钮,那么QQ弹出如下窗口:

4.png


这就是一个典型的黑盒测试,属于黑盒测试中的业务逻辑测试,这个测试的输入输出如下:

输入11/11(用户名/密码),

输出:“你输入的账户名或密码不正确”等。

通过输入输出消息来和需求说明书做对照,看是否一致,如果一致则通过,如果不一致则失败。(当然登陆的测试不是这么简单,我们这里只是以其中一个点举例,不要着急哦,我会慢慢带你学习的~)


白盒测试(White-box Testing)


    白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒指的打开盒子,去研究里面的源代码和程序结果。

无论是单元测试还是代码检查都不属于初级测试工程师的工作范围。这部分工作一般由软件开发工程师来完成,由开发小组自行编写单元测试、代码检查以及两者的审查的工作。现在也有些工具可以做简单的审查,比如sonar、go等等。总之,哪种情况都可以,只要适合自身情况即可。

在这里我们不做具体描述以及用例展示。

5.png


图片来源:文库


灰盒测试(Gray-Box Testing)


    灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。


那灰盒和白盒到底有啥不同?

  • 测试的时段不同:白盒测试在单元测试阶段进行,灰盒测试在集成测试前期进行

  • 测试的关注对象不同:白盒测试更关注内部实现是否按照规格说明书进行,灰盒测试除了需要关注白盒测试关注的内容还更多从业务层面去考虑问题,考虑更多的组合测试业务场景。

  • 范围不同:白盒测试更关注单个代码段,函数的正确性,灰盒测试的对象已经基本能完成一个完整的业务功能。

  • 代码是否独立:灰盒测试的代码比较独立,不像白盒测试基本上和程序代码需要做到一一对应。


这部分同样也是做简单了解即可。对于入门的人来说灰盒和白盒都还为时过早。只需要知道:

黑盒测试不需要关注代码和程序内部结构,白盒和灰盒需要。

白盒关注单个代码对,函数的正确性,需要和程序代码做一一对应;而灰盒测试重点关注的还是整个的业务功能。


举例


最后举个简单例子对黑盒测试、白盒测试、灰盒测试做对比说明。

宝宝玩儿机器人,玩儿的正高兴,突然机器人不动了,怎么按也不动,于是:

宝贝:妈妈~我机器人不动了。

我:打开开关了吗?自己反复打开开关,依然没反应,于是得出结论,机器人坏了,需要买个新的机器人了。

这一幕刚好被爸爸听到,6.png

爸爸:我来看看,于是拿着工具箱,拆开电池部分

1.嗯,换个新电池,还是不能工作

2.拆开机器人的螺丝部分,检查线路,线路连接都好着呢,没有松动呀

最终爸爸得出:嗯,是坏了,我们买个新的吧.

此时爷爷回来了,说我来看看吧,爷爷拿着他的电笔,开始一根根线路的检测,终于哦,找到了,这个线接触不好了,换个线吧,换个线后机器人终于开动了。


大家很明了了吧,如上故事里:

作为妈妈的我就是一个黑盒测试:打开电源,查看是否能工作;只根据输入输出进行表象测试

爸爸呢是灰盒测试:打开机器人,查看内部结构,但是只对线路连接部分进行了检测

厉害的爷爷呢就是白盒测试了:打开机器人,查看每个线路连接、每个线路是否能正常工作。




猜你喜欢

转载自blog.51cto.com/13874427/2421079