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

黑盒测试、白盒测试到底差别是什么?邓小平曾言:不管白猫、黑猫,能抓到老鼠就是好猫。如果用在软件测试领域,这句话也一点都没错。不管黑盒、白盒,能找出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两就够了。

       好了,现在去买豆芽。

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

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

       接下来……

 

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • SVN提交报错”svn: Commit blocked by pre-commit hook (exit code 1) with output: Can’t get Mantis_Key”的解决办法

    SVN提交报错”svn: Commit blocked by pre-commit hook (exit code 1) with output: Can’t get Mantis_Key”的解决办法

  • 网络python培训班「建议收藏」

    网络python培训班「建议收藏」为进一步推动高等院校人工智能教学工作的开展,加强国内各高等院校同行间的交流,培养国内的师资力量,将人工智能最新实训内容带入课堂,特举办“人工智能系列课程理论与实践”高级培训班。该培训定于2021年7月20日开始,共包含七大专题,每个专题5天左右,共计30天,通过线上直播的方式进行集训。七大专题分别为Python机器学习,图像识别与深度学习,深度学习与NLP,知识图谱、图神经网络和强化学习,深度学习PyTorch理论与实战。本次培训由权威专家主讲,提供实验环境及实验数据,并提供配套资料,通过剖析工程案例展

  • Mybatis 的常见面试题「建议收藏」

    Mybatis 的常见面试题「建议收藏」1、#{}和${}的区别是什么?#{}是预编译处理,${}是字符串替换。Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理${}时,就是把${}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。2、当实体类中的属性名和表中的字段名不一样,怎么办?第1种:通过在查询的sql语句中定

  • grunt集成Babel 实现ES6转ES5

    grunt集成Babel 实现ES6转ES5grunt集成Babel实现ES6转ES5背景:原来前端项目使用ES5开发,后来有个小伙伴使用了ES6的高级语言,导致项目无法通过grunt压缩。使用grunt集成babel,实现ES6转ES5,主要有一下几个步骤:1.配置package.jsondevDependencies里面是开发依赖,dependencies里面是项目依赖。”devDependencies”:{“babel-core”:”^6.26.3″,”babel-loader”:”^7.1.5″,

  • java 阶乘算法_Java 实现阶乘算法

    java 阶乘算法_Java 实现阶乘算法Java实现阶乘算法阶乘算法如下:以下列出0至20的阶乘:0!=1,(0的阶乘是存在的)1!=1,2!=2,3!=6,4!=24,5!=120,6!=720,7!=5040,8!=403209!=36288010!=362880011!=3991680012!=47900160013!=622702080014!=8717829120015!=130767436800016!=2092…

发表回复

您的电子邮箱地址不会被公开。

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