首先我们来看,白盒测试跟黑盒测试,对于这两个概念,我在网上也经常看到有人提出类似的问题,那我今天就来写一篇关于两者之间的原理与区别VS。

因为有很多朋友是刚刚接触软件测试行业的,多多少少都会有听过白盒测试、黑盒测试。

在公司里面,或者经常听到有人说你是做黑盒测试还是做白盒测试?或者白盒测试包括哪一些范畴呢?黑盒测试又包括哪一些范畴。

文章首发于公众号:程序员阿沐

我们简单来介绍一下这两个概念

黑盒测试
黑盒测试:也称功能测试,测试中把被测的软件当成一个黑盒子,

内部结构是什么,只关心软件的输入数据与输出结果。

主要测试依据是需求文档、设计文档、用户手册

1:业务能力

2∶测试策略(功能测试、u测试,兼容性测试)

3:设计用例–逻辑思维

这个图呢,我们就可以把整个程序,当做一个黑盒子,那么它的特点是什么呢?就是看不到程序里面实现的代码跟逻辑。其实这个就跟用户去使用这个软件是一样的道理。

比如说你是一个用户,我要去使用这个百度,那么我看到的只是百度的这么一个首页。

页面会有很多的按钮、输入等等之类的一些链接信息。但是我根本就无法通过这个表面展示的信息,去看到它内部代码的一个实现。那么像对这个图标进行点击,


在这个搜索框进行输入搜索,功能是否正常实现效果。

那么像这一类测试,我们就把它就做黑盒测试。

1.我不需要看到里面的这个代码实现是什么样子的,我也不管你里面是用Python实现的用Java实现的还是用其他编程语言实现的,我只要管我的功能有没有实现,就OK了。

比如说,我搜索了程序员阿沐,我点击百度一下,我只要得到的结果中间是有关于程序员阿沐这样子的词条结果出现,那么我就认为这个功能是正确的。

因此对于黑盒测试来说的话呢,它也是入门级别的一种测试,也是最为简单的一种测试。因为它只需要根据咱们的测试文档、或者设计文档、或者用户手册等等这一系列的参考数据,参考文档来对这个软件功能进行验证就OK了。

验证什么呢?

1.验证它的功能业务有没有正确的实现

2.验证它的UI是不是显示,是否美观正确,包括它的兼容性,等等之类的

3.设计用例–逻辑思维

只要这些内容实现了,符合需求文档、设计文档、用户手册。那么我们就认为这个功能没有问题,这个业务就是可以正常跑通的。所以这个就是对于咱们测试来说最为简单的一种方式,也是最快速入门的一种方式。

那么真真正正在公司中间,我们第一个去做的也是这个黑盒测试中间的功能测试,其实黑盒测试它是一个很大的范畴,黑盒测试它并不仅仅只包括功能测试,它也包括UI测试,兼容性测试,还包括什么?

其实我们常说的接口测试也是属于黑盒测试,或者功能测试的一个范畴。

因为像接口的话,接口这个东西也很简单,我就只需要管我在接口左边传入数据之后,我要得到什么样的结果就OK了。

也就是说我不去管你在这个接口内部中间是用的什么样的协议,用的什么样的处理机制来进行处理的。我就只关心在这个接口的左边,就是我在发送之前我输入一些请求参数,输入完成后我要得到的一个结果,比如说是登录成功或者说是登录失败,或者说是提示什么样的信息。

所以在一定程度上,我们也会把接口测试划分到黑盒测试的范畴里面来。

那为什么我们又那么的重视接口测试,而且单独把它从这一块单独拎出来去学习,包括在企业中间呢,你去面试的时候。我相信十个公司去面试至少有九个公司会问到会不会接口测试,会不会接口工具,会不会抓包。

那是因为接口它可以在咱们这一个功能测试之前,就进行。就在咱们的前一个阶段就开始执行,并且的话呢,它的这一个集成的程度以及管理的程度是相比于咱们这个功能跟UI方面来说,是要方便很多的。

因为它有一个非常大的特点!就是只需要把接口集成了,调试好了之后,基本上它的接口就不会动了,但是想咱们UI前端的话呢,有时候随着用户的体验感不好,或者说友好性不好等等之类的,前端的变化会非常的多。

因此在企业里面它会原来越重视这个接口,包括在接口的这一个阶段呢它可以发现你在功能阶段或者说在UI测试这个阶段很多的一些问题。

通用的问题,既然我能够在前一个阶段能够发现,那我为什么不去做呢,因为在咱们测试的过程中间越早发现这个Bug的话呢,它修复的这个成本就越低。然后你的这个软件的稳定性就会越好。我的这个质量就会得到一个更加好的保障!

这个就是接口在测试的一个比重,所以大家可以了解一下,所以说我们在这一块我们去做功能测试,接口测试基本上是你现在出去面试的时候必备问到的两个相关的这一个技能。(公众号程序员阿沐主页点击领取资料,领取最新大厂面试题)

那么我们讲到黑盒的话呢,我们又不得不讲一下我们的

白盒测试
因为大家一开始讲到黑盒就会跟白盒来进行比较,那么白盒就是完全跟黑盒相反的。

白盒测试:关心软件内部设计和程序实现,对内部实现逻辑进行测试的过程。

主要测试依据是设计文档,伪代码,代码。–》开发

测试开发(搭建自动化框架,开发自动化工具)–》自动化测试–》框架

技能要求:看懂内部逻辑(语言: java,python, php…)

那么白盒就是我就直接可以看到里面的代码逻辑,然后根据里面的代码逻辑然后去选取对应的数据,来对它进行一个测试,去检查它的结果是不是正确。因为像这种白盒测试的话呢,我们又把它叫做什么呢?又把它叫做代码测试,或者叫做单元测试。

像这一种测试的话呢,可想而知,它必须要的一个要求是什么?必须要看懂里面的内部逻辑,如果说你看不懂里面的一个内部逻辑,你怎么去选数据呢。或者说你看不懂里面的内部逻辑,你选了这个数据,你也不知道它对应得出的结果应该是什么。

如果我在中间给你写一个高阶的函数,以你的能力没有达到这个层次,然后我x去输入一个1,那么我y得出的是多少,我自己都不知道,那么我怎么样去测试呢,我怎么去保证我这个测试的结果是正确的呢。

因此在这一块,做白盒测试第一个要求就是你要懂内部逻辑,所谓的内部逻辑就是你要看懂开发写的这些代码,又回到我们百度的这个案例上来。

我们单元测试来说,我们看到的不再是百度首页这样子的一个东西,而是我看到的是这样子的一个Html的代码,那么在这样一个代码里面的,要去看它是否正确,div是什么意思,为什么要放到这里,为什么要这样子来写,这就是我们需要去学会一门编程语言非常重要的一个点。

因为大家都知道,我们的编程语言有非常的多,比如说像Java、PHP、Python等等之类的,那么你这个程序是用什么语言写的,那你就必须要看懂这么语言。

因此来说白盒测试工程师他的要求非常高。并不是仅仅说你掌握一门编程语言,你掌握一个框架就OK了,并不是这样子的。

白盒测试因为他的要求比较高,而且相关的技术人员也是挺难找的,所以说一般在公司中间他白盒测试很少让测试去做,一般开发人员做单元测试,因为开发人员这个语言,内部的逻辑就是本人写出来的,所以他对这个语言是非常熟悉的。

然后利用内部开发人员交叉的测试,从而来测它内部的代码逻辑是不是正确。

白盒测试参考的一些文档就是,设计文档、伪代码、代码,这些东西。

当然有些小伙伴就说我的目标就是要成为一个白盒测试工程师,那么我就建议你把这个目标改一改,因为像现在的话呢,大家都知道我们这个人工智能,我们的这一个Python,云储存,这些都非常的火。

所以说像在这一块,我们要看到时代的一个发展,包括IT他往哪个方面重点发展。现在的话,你无论是走自动化还是走性能方向,或者走安全方向,其实在需求的程度上都比白盒测试要多一些。

当然白盒测试也有他的一个需求市场,不是说没有,相对比较少。

知识面拓展:

黑盒测试产生的问题
从理论上讲,黑盒测试只有采用穷举输入测试,把所有可能的输入都作为测试情况考虑,才能查出所有的错误。实际上测试情况是无穷多的,完全测试是不可能的。

如何解决?

必须将黑盒测试行为加以分类

1、节约测试实施的时间和资源

2、避免盲目测试、提高测试效率

3、使测试的实施重点突出、目的更明确

加油吧,测试人!路就在脚下,成功就在明天!

未来的你肯定会感谢现在拼命的自己!

愿你我相遇,皆有所获! 欢迎关注微信公众号:程序员阿沐

1.免费领取一份216页软件测试工程师面试宝典文档资料。

2.软件测试学习路线以及相对应的视频学习教程免费分享!

文章首发于公众号:程序员阿沐

转载请注明出处!

黑盒测试和白盒测试的基本原理/区别是什么?相关推荐

  1. 软件测试用例的优点和缺点,浅析黑盒测试和白盒测试各自的优缺点

    软件测试是为了发现程序中的错误而执行程序的过程,常用黑盒功能测试法和白盒结构测试法进行测试,那黑盒功能测试法和白盒结构测试法到底是什么样的测试方法?它们有哪些优劣势呢? 所谓黑盒功能测试法,就是把要测 ...

  2. 黑盒测试、白盒测试、灰盒测试的区别

    1. 黑盒测试 黑盒测试也称功能测试.数据驱动测试或基于规格说明书的测试,它是通过测试来检测每个功能是否都能正常使用.在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况 ...

  3. 什么是黑盒测试和白盒测试、灰盒测试?

    软件测试按照测试技术划分可以有:黑盒测试,白盒测试,灰盒测试 黑盒测试又叫功能测试 1.软件黑色盒子,里边的实现,看不见代码 2.输入,输出结果---功能测试的方法 这是因为在黑盒测试中主要关注被测软 ...

  4. 软件测试:黑盒测试、白盒测试和灰盒测试

    1. 黑盒测试和白盒测试的直观图 从图中可以直接看出来,黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试.而白盒测试可以当盒子是透明的,里面 ...

  5. 黑盒测试、白盒测试、灰盒测试区别与详细功能描述

    一.黑盒测试.灰盒测试.白盒测试概念 黑盒测试:黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检验每个功能都是否能够正常使用. 白盒测试:白盒测试也称结构测试或逻辑驱动测 ...

  6. 浅谈黑盒测试和白盒测试

    1. 黑盒测试和白盒测试的直观图 从图中可以直接看出来,黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试.而白盒测试可以当盒子是透明的,里面 ...

  7. 简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

    简述什么是静态测试.动态测试.黑盒测试.白盒测试.α测试 β测试 静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程. 动态测试是实际运行被测程序,输入相应的测试实例,检查运行 ...

  8. 软件测试面试真题 | 黑盒测试和白盒测试的基本概念是什么?

    在软件测试的面试中,什么是黑盒测试,什么是白盒测试是特别容易被问到的一个问题. 面试官问出这个问题,其实考察的是大家对于软件测试基础理论的掌握程度.下面来梳理一下这个问题的回答思路. 黑盒测试 黑盒测 ...

  9. 软件测试 黑盒测试与白盒测试简单分类

    软件测试 软件测试其实就是对程序进行一些操作,来发现程序所存在的缺陷,衡量软件的质量,并对其是否能满足设计要求进行评估的过程. 软件测试方法分类 基于直觉和经验的方法 Ad-hoc测试方法:强调测试人 ...

  10. 什么是黑盒测试和白盒测试?

    什么是黑盒测试和白盒测试? 任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试. 黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求.白盒测试:已知产品的 ...

最新文章

  1. PyTorch 笔记(03)— Tensor 数据类型分类(默认数据类型、CPU tensor、GPU tensor、CPU 和 GPU 之间的转换、数据类型之间转换)
  2. IOS问题汇总:2012-12-18 UIAlertView+UIActionSheet
  3. python之生成器
  4. 线段检测网格检测(LCNN)的wireframe数据集标注、转换问题
  5. 递归算法,如何把list中父子类对象递归成树
  6. 每天开豪车跟随老板出入高档会所,吃住高档酒店,这样的职场生活,有必要坚持下去吗?
  7. Sampleson Reed106 Mac - Sampleson系列插件中一款出色的电钢琴模拟插件
  8. e5cc温控仪通讯参数设定_应用 | 如何实现S7300与S7200smart通讯?
  9. PPT太大怎么进行压缩
  10. word表格分开快捷键_Word用鼠标和快捷键拆分单元格与合并单元格
  11. 2015年总结与感悟
  12. 玩客云小盒子安装点心云,实现闲置宽带共享。
  13. 来张券呗 | 打造一款cps小程序《一》
  14. left join,join和right join区别
  15. python脱离pc自动化_Android手机脱离电脑直接运行UIAutomator2
  16. CUDA:CUDA out of memory. Tried to allocate 100.00 MiB (GPU 0; 15.78 GiB total capacity; 14.24 GiB al
  17. 治疗性经颅磁刺激后大规模脑电图神经网络的变化
  18. ci mysql操作_MySQL基础篇/第3篇:MySQL基本操作语句.md · icanci/MySQL-Review - Gitee.com...
  19. 北师大高级程序c语言0098在线作业,19秋地大《C语言程序设计(新)》在线作业二【标准答案】...
  20. windows server 2003的驱动

热门文章

  1. signature=c7580760a679f082e2d4960e4c2c7772,Signatures of moiré-trapped valley excitons in MoSe
  2. Java基础题26:(多选题)下列哪些选项属于Java技术体系()
  3. android 修改双卡铃声,Android 修改系统来电铃声
  4. Trianglify - 生成五彩缤纷的 SVG 背景图案
  5. justinmind夜话:程序员眼中的原型设计视频教程之书到用时方恨少
  6. win7计算机u盘不显示盘符,win7系统识别U盘但不显示盘符该如何解决?
  7. CICD:CentOS 下 Jenkins 安装
  8. MongoDB文档增删改查
  9. Redis源码解读(七)——基本类型—dict
  10. 可口可乐市场调查失败的原因_经典案例可口可乐一次市场调研失败的教训