一篇读懂什么是白盒测试
一提到白盒测试大家想到白盒级测试就是对代码本身去做测试,而白盒测试真正的定义是什么呢?相信大家读完这篇文章后,就会对白盒测试这个概念有一个更加清晰的认识了。
1.白盒测试是什么?
“白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。”
——摘自百度百科
从百度百科对白盒测试的解释中,我们可以提取出几个关键信息点:
1 白盒测试是一种测试用例设计方法。
2 白盒测试的测试对象是代码本身的内部逻辑。
简单用一句话来概括什么是白盒测试,那就是,白盒测试就是对软件代码本身内部逻辑的一种测试方法。
说到这里,可能大家还会有一点有疑惑,那就是“内部逻辑”该怎么理解?实际上我们可以把被测代码想象成一个神奇盒子,我们进行输入,输入的东西经过这个盒子处理后,会输出一个东西。我们的关注点仅仅是输出的东西吗?当然不,这点也是白盒测试的重点,是内部逻辑,是这个处理过程。
就像上面这张图这样,我的输入就是一个苹果,通过被测软件这个“神奇盒子”处理后,成了一杯果汁。站在白盒测试的角度,我们的关注点应该是这个“神奇盒子”如何一步一步把一个苹果输出成一杯苹果汁的。如果读到这里,你也这么想,那证明你对白盒测试的理解已经很清楚了。
2. 白盒测试有哪些分类?
白盒测试的基本定义理解了,但是白盒测试的实施方法上又分哪些呢?其实白盒测试的方法总体上分为静态分析方法和动态分析方法两大类。
静态分析是一种不通过执行程序而进行测试的技术。静态分析的关键功能是检查软件的表示和描述是否一致,有无冲突或者歧义。
动态分析是当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析。动态分析包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。在动态分析技术中,最重要的技术是路径和分支测试。
3. 白盒测试如何实施?
想要做好白盒测试,简单说就是要做好静态分析和动态分析两部分工作,但是很多用户往往很难去做好这部分工作,他们在具体实施的过程中会遇到很多难以解决的问题,比如说,在静态分析的时候,用户会很难去制定出属于自己的测试集,会不确定自己选用的测试集好不好,等等,诸如此类各种各样的问题,如果你也是一名从事软件测试的小伙伴,你是不是也会在技术落地的时候遇到这些种种问题呢?那你是如何解决这些问题呢?
其实,非常简单,Parasoft的软件开发全生命周期测试解决方案可以消除你的一切顾虑,下期我们讲讲Parasoft是如何帮助客户完美落地白盒测试的。
一篇读懂什么是白盒测试相关推荐
- 一篇读懂--mybatis的缓存
一篇读懂–mybatis的缓存 MyBatis的缓存指的是缓存查询结果,当以后使用相同的sql语句.传入相同的参数进行查询时,可直接从mybatis本地缓存中获取查询结果,而不必查询数据库. myba ...
- 一篇读懂:Android手机如何通过USB接口与外设通信(附原理分析及方案选型)
更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,共同探讨软件知识经验,关注就有海量学习资料免费领哦: 目录 0背景 1.手机USB接口通信特点 1.1 使用方便 1.2 通用性强 1.3 ...
- 一篇读懂无线充电技术(附方案选型及原理分析)
更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 目录 一篇读懂无线充电技术(附方案选型及原理分析) 0.背景 1.无线供电特 ...
- 一篇读懂:Android/iOS手机如何通过音频接口(耳机孔)与外设通信
一文读懂Android/iOS手机如何通过音频接口与外设通信 更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦: 目录 一文读懂 ...
- 一篇读懂可转债基金、二级债基、一级债基、纯债基
一篇读懂可转债基金和二级债基以及一级债基 2017年11月23日 08:25 来源: 基金吧 编辑:东方财富网 [一篇读懂可转债基金和二级债基以及一级债基]目前,国内债券型基金,已经可以根据其投资范围 ...
- 一篇读懂分布式架构下的负载均衡技术:分类、原理、算法、常见方案等
1.引言 关于"负载均衡"的解释,百度词条里:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务. 负载均衡(Load ...
- [一篇读懂]C语言五讲:指针
[一篇读懂]C语言五讲:指针 1. 指针的本质(间接访问原理) 1 指针的定义 2 取地址操作符与取值操作符,指针本质 2. 指针的==传递==使用场景 1 指针的传递 [例1.1]指针的传递使用场景 ...
- 初学者选黑卡还是微单_零基础,一篇读懂单反和微单
许多小白在选购相机时,常常会纠结选微单还是选单反. 那么这次就来一篇通俗讲解:单反和微单有什么区别?谁更好?应该怎么选择? 一.单反和微单有什么区别? 在了解单反和微单的区别之前,我们先要了解它俩到底 ...
- 设计模式-进阶架构师必备知识(一篇读懂,就一篇)
目录 设计模式 1.1 设计模式从何而来 1.2 设计模式是什么 1.3 设计模式有什么用 1.4 设计模式的七大原则 1.4.1 单一职责原则(Single Responsibility Princ ...
最新文章
- BPM实例分享:如何设置开窗高度与宽度?
- ubuntu 安装deb_Ubuntu不完全小坑指南
- python打包exe报错_python 程序打包为 windows 可执行程序 exe
- C语言 函数声明和调用 - C语言零基础入门教程
- OpenCV使用小札记-Cvmat与IplImage的相互转换
- 修改caffe源码--支持多标签--关键点检测
- Microsoft Office 2010 Service Pack 2
- python生成10000个样本数据集_python – 为什么随机抽样比例数据集不是样本量? (pandas .sample()示例)...
- CentOS安装之后的系统安全配置
- 自己动手源码包制作rpm 包 (二)
- 倍福PLC使用Visualization功能实现可视化界面
- Flask 学习-86.Flask-APScheduler 创建定时任务
- c语言随机数 linux,C语言随机数生成教程(rand和srand用法)
- java 读取.xlsx_java 读取xlsx
- [VK Cup 2016 - Round 3] - D Bearish Fanpages
- html 怎么插入向上的箭头,如何在html中插入箭头?
- 自动驾驶仿真软件SCANeR studio(三)terrain地形模式
- python 一张图画多条线_Python画多条线在一个图里
- ros分布式多机通信完整教程
- go语言开发工具sublime text3 + gosublime配置