一文带你吃透黑盒测试跟白盒测试的区别
前言
大家好,我是小七,在前面的测试笔记中我们具体聊过白盒测试跟黑盒测试,这些天跟我的一些同事也有聊到类似的一些概念,今天就跟大家分享下我对这两种测试的理解。
黑盒测试
它是根据软件需求和规范创建测试场景/案例,按照需求文档里面定义的行为及规范进行输入并且检查输出的测试。
测试人员在不查看内部代码结构的情况下,评估被测软件的功能。它可以应用于软件测试的各个层次,如单元、集成、系统和验收测试。
因为不查看源码,所以测试人员只对应用程序的功能部分执行测试,以确保软件的行为符合预期,所以是基于行为的测试。
黑盒测试的常用的一些技术
- 等价划分:等价划分也称为等价类划分法。在等价划分法中,软件的输入被划分为期望表现出相似行为的组,因此它们很可能以相同的方式被输入。因此,从每个组中选择一个输入来设计测试用例。
- 边界值分析:边界值分析(BVA)是在测试有效和无效分区的边界值的基础上进行的。每个等价分区边缘的行为比分区内的行为更加容易出现缺陷,因此边界是测试可能产生缺陷的区域。
- 决策表:决策表又称因果表。这种测试技术适用于输入之间具有逻辑关系的功能。在决策表技术中,我们处理输入的组合。为了识别决策表的测试用例,我们可以查看它的条件和输出。
- 状态转换:使用状态转换测试,我们从需要测试的不同系统转换的应用程序中选择测试用例。当应用程序为相同的输入提供不同的输出时,我们可以应用这个方法,这取决于在以前的状态中发生了什么。
白盒测试
白盒测试是基于应用程序内部的代码结构在白盒测试中,系统的内部视角以及编程技巧被用来设计测试用例这种测试通常在单元级别进行。
白盒测试的常用的一些技术
- 语句覆盖率:它是一种常用的测试覆盖方式,它衡量被测代码中每个语句是够被执行到了。当然前提条件是可执行代码,类似的注释,头文件,空行,等是无法被覆盖的。通常它考虑的是代码覆盖的行数,而不考虑其内部的逻辑处理,所以测试效果不太明显。
/* int divide(int a, int b) { return a / b; } */
假设我们的测试用例是:
TeseCase: a = 10, b = 5
那么它的语句覆盖率是100%,但是除零的问题却没有表现出来。所以我们引入了其他的测试覆盖率。 - 分支覆盖率:又称判定覆盖率,它是指源码中每个判断的取真分支和取假分支至少经历一次,即判断的真假均曾被满足。例如下图就是一个关于分支覆盖的一个设计。
- 路径覆盖率:它包含所有可能的控制路径,在路径覆盖技术中取零、一次和多个(理想,最大)项的所有循环路径,基于程序设计的逻辑复杂性度量来准备测试用例。所以可以认为是分支覆盖和语句覆盖的集合。
总结
黑盒测试 | 白盒测试 |
---|---|
不查看内部代码结构 | 了解程序内部的代码结构 |
按照根据软件需求和规范设计 | 按照程序内部逻辑设计 |
涉及到单元、集成、系统和验收测试 | 涉及到单元、集成测试 |
测试人员不需要程序经验 | 需要有一定的程序经验 |
可以是手动或者是自动化测试 | 可以是手动或者是自动化测试 |
黑盒测试和白盒测试,这两者之间的区别还是挺大了,首先黑盒测试最主要就是测试软件方面的功能,然后它并不能完全代替了白盒测试,只能说是互补的测试方式,而且在测试的过程中还有可能会发现白盒测试之后,其他不是很容易发生类型的错误。另外白盒测试最主要就是测试程序代码逻辑,可是黑盒测试却不同,它针对的就是程序展现出来之后提供用户的功能,简单来说白盒测试最主要测试的就是后台程序,然后黑盒测试最主要测试的就是前台展示的功能,它们都有着属于自身的作用,不能混为一谈。
最后
概括的来说,黑盒测试和白盒测试的侧重点是不一样的。黑盒更关注的是软件实现的功能是否按照需求文档来,而白盒测试更加关注程序内部的逻辑是不是正确。如果大家有其他的看法或者想法,也欢迎大家加我私人v或者进群一起讨论。
系列笔记往期文章入口:
https://blog.csdn.net/m0_59893917/article/details/118522763?spm=1001.2014.3001.5501
https://blog.csdn.net/m0_59893917/article/details/118545579?spm=1001.2014.3001.5501
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!!!
一文带你吃透黑盒测试跟白盒测试的区别相关推荐
- 一文带你吃透微服务守门神SpringCloud-GateWay
一文带你吃透微服务守门神SpringCloud-GateWay GateWay简单介绍 Gateway和Zuul的对比: gateWay的几个核心概念 入门案例 网关层负载均衡 gateWay 工作原 ...
- 进程、线程与协程傻傻分不清?一文带你吃透!
目录 前言 内容大纲 进程 什么是进程 进程的控制结构 进程的状态 进程的上下文切换 线程 什么是线程 线程与进程的对比 线程的上下文切换 线程的模型 调度 调度原则 调度算法 好文推荐 前言 欢迎来 ...
- 一文带你吃透Vue生命周期(结合案例通俗易懂)
文章目录 本篇学习目标 1. vue生命周期 1.0_人的-生命周期 1.1_钩子函数 1.2_初始化阶段 1.3_挂载阶段 1.4_更新阶段 1.5_销毁阶段 2. axios 2.0_axios基 ...
- 一文带你吃透汉诺塔和其变形题
普通汉诺塔 感兴趣的童鞋可以与我联系和交流~ 公众号: 畅游码海 更多高质量原创文章都在里面! 汉诺塔(港台:河内塔)(Tower of Hanoi)是根据一个传说形成的数学问题: 有三根杆子A,B, ...
- 【微信小程序】一文带你吃透小程序开发框架——视图层中的事件系统
0️⃣前言 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. 事件对象可以携带额外信息,如 id ...
- 一文带你吃透操作系统
文章目录 1. 进程.线程管理 2. 内存管理 3. 进程调度算法 4. 磁盘调度算法 5. 页面置换算法 6. 网络系统 7. 锁 8. 操作系统知识点 文章字数大约1.9万字,阅读大概需要65分钟 ...
- 一文带你吃透计算机网络(下)
文章字数大约1.2万字,阅读大概需要40分钟,建议收藏后慢慢阅读!!! 1. IP协议 IP协议的作用 网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信. IP协议 ...
- 一文带你吃透 Kafka 这些原理
如果只是为了开发 Kafka 应用程序,或者只是在生产环境使用 Kafka,那么了解 Kafka 的内部工作原理不是必须的.不过,了解 Kafka 的内部工作原理有助于理解 Kafka 的行为,也利用 ...
- 【微信小程序】一文带你吃透小程序开发框架——逻辑层
0️⃣写在前面 开发者写的所有代码最终将会打包成一份 JavaScript 文件,并在小程序启动的时候运行,直到小程序销毁.这一行为类似 ServiceWorker,所以逻辑层也称之为 App Ser ...
- 为什么说Jupyter Notebook是Python必学技术?一文带你吃透
jupyter notebook是一个基于网页的交互式笔记本,支持多种编程语言.之前被称为 ipython notebook. 它的本质是一个web应用程序,便于演示和共享程序文档.支持实时编码.数学 ...
最新文章
- 写给程序员的最好的13条建议
- 这些 JS 中强大的操作符,总有几个你没听说过
- 一键分享手机代码_通过广告路由器指定手机浏览器自动认证WIFI上网 附代码
- :继续教育学习助手_我们自己做:教育的开放组织
- DNS IP DOMAIN 详解
- Android系统(245)---SystemServer进程的创建流程
- JAVA 基础(0)教学视频的选择和笔记本的选择
- 低层次数论书籍大杂烩
- 如何在知网下载PDF格式的硕博毕业论文?
- AD19原理图的设计流程
- kettle 提交数据量_kettle大数据量读写mysql性能优化
- 关闭135端口rpcss服务
- 如何使用jquery插件
- 浏览器出现ERR_PROXY_CONNECTION_FAILED 错误代码
- 大直径硅晶圆在单晶炉高温高速热处理过程中的热行为
- source insight如何设置背景
- lcs算法c语言代码,动态规划算法-LCS
- 2021-06-18杭电ACM-LCY算法进阶培训班-专题训练16
- 论文阅读(2021) 探讨语境在会话中话语层情绪、行为和意图分类中的作用
- Git中文化 ,Git GUI Here汉化
热门文章
- 最短路 POJ2387
- 打包contrail-setup
- php 微信公众号登录,PHP 实现微信公众号网页授权登录
- 软件测试周刊(第26期):从喜欢里得到力量和快乐
- 农行笔试题之多少年后两国人均GDP相等
- 无法在驱动器1分区上安装W ndOwS,安装win10提示无法在驱动器0分区上安装windows
- 如何写一篇综述论文、浅谈
- java 生成ppt_Java 创建并应用PPT幻灯片母版
- (译)BPF技巧和窍门:bpf_trace_printk() 和 bpf_printk() 指南
- 下载win10镜像_安装配置win10虚拟机_获取win10产品密钥