IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件测试之白盒测试 -> 正文阅读

[开发测试]软件测试之白盒测试

白盒测试

白盒测试(White Box Testing)又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试只测试软件产品的内部结构和处理过程,而不测试软件产品的功能,用于纠正软件系统在描述、表示和规格上的错误,是进一步测试的前提。

白盒测试遵循的四大原则:

  1. 保证一个模块中所有路径至少被测试一次;
  2. 所有逻辑值都要测试真(true)和假(false)两种情况
  3. 检查程序的内部数据结构是否有效;
  4. 检查上、下边界及可操作范围内运行所有循环

静态白盒测试

白盒测试分静态和动态两种,静态测试是指不运行程序,通过人工对程序和文档进行分析与检查。下面是静态白盒测试检查的故障模式。

  1. 内存泄漏的故障(Memory Leak Fault, MLF)
  2. 数组越界故障的故障(Out of Bounds Array Access Fault OBAF)
  3. 使用未初始化变量故障(Uninitialized Variable Fault,UVF)
  4. 空指针使用故障(NULL Pointer Dereference Fault NPDF)
  5. 非法计算类故障(Illegal Computing Fault ILCF)
  6. 死循环结构(Dead Loop Fault DLF)
  7. 资源泄漏(RLF)
  8. 并发故障 (Concurrency Fault)
  9. 安全漏洞故障
  10. 疑问代码故障

简单来说,静态白盒测试就是看代码找bug

动态白盒测试

白盒测试分静态和动态两种,动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能。

动态白盒测试流程:

  1. 选取定义域有效值,或定义域外无效值;(等价类划分思想)
  2. 已选取值决定预期的结果;
  3. 用选取值执行程序;
  4. 执行结果与对已选取值决定预期的结果对比,不吻合程序有错

逻辑覆盖测试

为了满足白盒测试的四大原则,需要使用逻辑覆盖测试法来设计测试用例。逻辑覆盖测试是以程序内部的逻辑结构为基础设计测试用例的方法,首先需要就行代码的结构分析,绘制流程图。

代码如图所示:


?

对应结构图如下:

注意:圆圈中的数字代表代码的行数

之后进行逻辑覆盖,由于覆盖测试的目标不同,逻辑覆盖又可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

从表中的介绍可知,从上到下,该方法覆盖的路径越多。其他方法覆盖的路径不全面,那为什么不直接使用路径覆盖?这是由于如果程序中出现了多个判断和多个循环,可能的路径数目将会急剧增长,以至实现路径覆盖不可能。

为了解决上面的问题,出现了基本路径覆盖,它在程序控制流图的基础上,通过分析程序控制流图的环路复杂性,导出基本可执行路径(独立路径)的集合,然后据此设计测试用例。

各个覆盖方法的优缺点:


?

在实际测试中,即使对于路径数很有限的程序已经做到路径覆盖,仍然不能保证被测试程序的正确性,还需要采用其他测试方法进行补充。

数据流测试

数据流测试分析常常集中于定义/引用异常的缺陷,用于如下三方面测试。

  1. 变量被定义,但是从来没有使用(引用)
  2. 所使用的变量没有被定义
  3. 变量在使用之前被定义两次

早期的数据流测试主要用于检测程序编写时出现的一些警告信息,如“所定义的变量未被使用等”问题,这些问题光靠简单的语法分析器或者是语义分析器是无法检测出来的。

程序插桩

在程序的特定部位插入记录动态特性的语句,最终是为了把程序执行过程中发生的一些重要的历史事件记录下来。例如,记录在程序执行过程中某些变量值的变化情况,变化的范围等。这些插入的语句常常被称为“探测器”或者“探测点”。

总结

  • 白盒测试方法基于被测程序的源代码开发测试用例。常见的白盒测试方法有逻辑覆盖、数据流测试、路径分析以及程序插装等。
  • 逻辑覆盖以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的结构作到一定程度的覆盖,如语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖及路径覆盖。路径覆盖是最强的逻辑覆盖准则,实际上我们只能有选择地测试程序中某些有代表的性路径。

?各位看官老爷记得关注点赞哦!

?

?

?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 11:02:20  更:2021-09-08 11:03:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 23:36:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码