黑盒测试、白盒测试到底差别是什么?

黑盒测试、白盒测试到底差别是什么?邓小平曾言:不管白猫、黑猫,能抓到老鼠就是好猫。如果用在软件测试领域,这句话也一点都没错。不管黑盒、白盒,能找出Bug、发现缺陷,保证软件质量才是王道。对于刚踏足软件测试的新手小白来说,黑盒测试、

大家好,又见面了,我是你们的朋友全栈君。

 

*曾言:不管白猫、黑猫,能抓到老鼠就是好猫。
 

       如果用在软件测试领域,这句话也一点都没错。不管黑盒、白盒,能找出Bug、发现缺陷,保证软件质量才是王道。
 

       对于刚踏足软件测试的新手小白来说,黑盒测试、白盒测试绝对是入门必学词汇之一。不过,他们说的黑是什么黑?白又是什么白?两者的区别到底在哪里呢?且听我一一道来。
 

       最大区别:关注对象不一样
 

       黑盒测试和白盒测试,二者最大的区别应该就是测试时关注的对象不一样。

       黑盒测试主要针对的是程序所展现给用户的功能,白盒测试主要针对的是程序代码逻辑,简单的说,就是前者测试最终展示功能,后者测试后台程序。
 

       黑盒测试
 

       黑盒,顾名思义就是:把测试对象看作一个不能打开的黑盒子。测试时,测试人员完全不用考虑盒子里面的逻辑结构和具体运作,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明,检验输出结果对不对。

<span role="heading" aria-level="2">黑盒测试、白盒测试到底差别是什么?

       白盒测试
 

       与黑盒恰恰相反,这种方法是把测试对象看作一个打开的透明盒子。测试时,测试人员会利用程序内部的逻辑结构及有关信息,通过在不同点检查程序状态,检验程序中的每条通路是否都能按预定要求进行正确工作。

<span role="heading" aria-level="2">黑盒测试、白盒测试到底差别是什么?

       举个栗子,加深理解
 

       说到这里,我们来举一个生活中的小栗子,相信能更好的帮你理解这两种测试方法。

       假设,小A和小B是一对情侣,决定在家做饭。小A让小B出门买菜,最好一个小时内能买齐回家。

       如果在黑盒模式下,小A(测试人员)会为小B列出一张购买清单(所谓:需求规格说明书),然后告诉小B,现在是9:45,只要在10:45之前买齐所有东西,带着回家就可以了。

<span role="heading" aria-level="2">黑盒测试、白盒测试到底差别是什么?

       如果在白盒模式下,就可能是下面这样的情况。

       小B达到指定的菜场后,小A开始电话远程指挥:

       首先买肉,卖肉的摊位,你要去指定的那一家。

       你现在进的是南门吗?走南门的话,进去,靠右走,一直走到最里面……

       什么?你走的北门?如果是走北门的话,一进去,先左拐,走到头,到卖酸奶那里,往右拐,一直往前走……

       跟老板说要买黑猪肉,要前腿,不要后腿,6两就够了。

       好了,现在去买豆芽。

       豆芽一定要看好日期,看看是不是今天的。如果不是今天的,就买昨天的。如果昨天的也没有,就不新鲜了。

       哦,对了,有三种牌子的豆芽,一种散称的,两种袋装的。要是袋装的没有,就买散称的。如果你买散称的,你要看看根儿黑了没,别挑杆太肥的……

       接下来……

 

       总有人喜欢比较:黑盒测试和白盒测试到底哪个更好呢?其实,从上面的例子也不难看出,两者的优势各不相同。但无论采用哪种测试方法,毫无疑问都是为了找出缺陷,发现风险,从而确保软件的缺陷更少,质量更好。黑盒和白盒,始终交织出现在我们的测试工作中。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154765.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 心脏出血(Heartbleed)漏洞浅析、复现

    心脏出血(Heartbleed)漏洞浅析、复现一、漏洞介绍心脏出血(英语:Heartbleed),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中,2014年4月首次向公众披露。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而受到攻击。此问题的原因是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于“心跳”(heartbeat)。该程序错误属于缓冲区过读,即可以读取的数据比应该允许读取的还

    2022年7月16日
    162
  • scikit-learn : LARS[通俗易懂]

    scikit-learn : LARS[通俗易懂]LARS正则化斯坦福大学的BradleyEfron,TrevorHastie,IainJohnstone和RobertTibshirani发现了LARS(LeastAngleRegression,最小角回归)它借用了威廉·吉尔伯特·斯特朗(WilliamGilbertStrang)介绍过的高斯消元法(Gaussianelimination)的灵感。背景LARS是一种回归手段,适

    2022年6月24日
    28
  • vue中splice和$emit使用

    vue中splice和$emit使用splice函数用法splice(index,len,[item])它也可以用来替换/删除/添加数组内某一个或者几个值(该方法会改变原始数组)ndex:数组开始下标len: 替换/删除的长度item:替换的值,删除操作的话 item为空删除://删除起始下标为1,长度为1的一个值(len设置1,如果为0,则数组不变)var arr = [‘a’,…

    2022年6月13日
    26
  • Oracle PL/SQL编程之五: 异常错误处理(知已知彼、百战不殆)

    Oracle PL/SQL编程之五: 异常错误处理(知已知彼、百战不殆)Oracle PL/SQL编程之五:异常错误处理(知已知彼、百战不殆) 本篇主要内容如下:5.1 异常处理概念5.1.1 预定义的异常处理5.1.2 非预定义的异常处理5.1.3 用户自定义的异常处理5.1.4  用户定义的异常处理5.2 异常错误传播5.2.1 在执行部分引发异常错误5.2.2 在声明

    2022年6月17日
    27
  • html5 scrollheight,scrollHeight和scrollWidth,获取网页内容高度和宽度不正确

    html5 scrollheight,scrollHeight和scrollWidth,获取网页内容高度和宽度不正确问题如下图所示,高度明显不正确,请问问题出在哪,希望能给出详细解释。另外,希望能再具体解释下document.documentElement.clientHeight、window.innerHeight、document.documentElement.scrollHeight及document.body.clientHeight之间的关系,发现document.body.clientHeigh…

    2022年7月23日
    12
  • java数组的三种初始化方式

    java数组的三种初始化方式2018年4月3日Java语言中数组必须先初始化,然后才可以使用。所谓初始化就是为数组的数组元素分配内存空间,并为每个数组元素附初始值。注意:数组完成初始化后,内存空间中针对该数组的各个元素就有个一个默认值:           基本数据类型的整数类型(byte、short、int、long)默认值是0;           基本数据类型的浮点类型(float、double)默认值是0.0; …

    2022年5月5日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号