软件测试技术(四)白盒测试

这篇具有很好参考价值的文章主要介绍了软件测试技术(四)白盒测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

白盒测试

白盒测试(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. 变量在使用之前被定义两次

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

程序插桩

在程序的特定部位插入记录动态特性的语句,最终是为了把程序执行过程中发生的一些重要的历史事件记录下来。例如,记录在程序执行过程中某些变量值的变化情况,变化的范围等。这些插入的语句常常被称为“探测器”或者“探测点”。文章来源地址https://www.toymoban.com/news/detail-434605.html

总结

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

到了这里,关于软件测试技术(四)白盒测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [软件测试] 04 白盒 静态测试 习题

    软件测试期末复习系列 课件知识点整合 : 软件测试基础 白盒测试 黑盒测试 PTA习题汇总 : 软件测试基础 白盒测试-逻辑覆盖测试 白盒测试-基本路径测试 白盒测试-静态测试 黑盒测试-等价类划分 黑盒测试-边界值测试 黑盒测试-场景法 提示 : 篇幅较长,可以使用 Ctrl+F ,在

    2024年02月04日
    浏览(57)
  • [软件测试] 02 白盒 逻辑覆盖测试 习题

    软件测试期末复习系列 课件知识点整合 : 软件测试基础 白盒测试 黑盒测试 PTA习题汇总 : 软件测试基础 白盒测试-逻辑覆盖测试 白盒测试-基本路径测试 白盒测试-静态测试 黑盒测试-等价类划分 黑盒测试-边界值测试 黑盒测试-场景法 提示 : 篇幅较长,可以使用 Ctrl+F ,在

    2024年02月04日
    浏览(49)
  • [软件测试] 第二部分 白盒测试

    软件测试期末复习系列 课件知识点整合 : 软件测试基础 白盒测试 黑盒测试 PTA习题汇总 : 软件测试基础 白盒测试-逻辑覆盖测试 白盒测试-基本路径测试 白盒测试-静态测试 黑盒测试-等价类划分 黑盒测试-边界值测试 黑盒测试-场景法 白盒测试:侧重于系统或部件 内部机制

    2024年02月04日
    浏览(45)
  • [软件测试] 03 白盒 基本路径测试 习题

    软件测试期末复习系列 课件知识点整合 : 软件测试基础 白盒测试 黑盒测试 PTA习题汇总 : 软件测试基础 白盒测试-逻辑覆盖测试 白盒测试-基本路径测试 白盒测试-静态测试 黑盒测试-等价类划分 黑盒测试-边界值测试 黑盒测试-场景法 提示 : 篇幅较长,可以使用 Ctrl+F ,在

    2024年02月04日
    浏览(41)
  • 【软件构造】黑盒测试与白盒测试

    按照 是否需要知道程序内部是如何实现 的,将测试分为 黑盒测试 与 白盒测试 。 需要知道程序内部是如何实现的—— 白盒测试 不需要知道程序内部是如何实现的—— 黑盒测试 白盒测试一般是 内部人员 即程序员进行测试 黑盒测试一般是 外部人员 如专门的测试人员和用户

    2023年04月15日
    浏览(47)
  • 软件工程导论 黑盒测试、白盒测试

    集中检测软件设计的最小单元(即 模块 )。 模块接口 局部数据结构 重要执行通路 出错处理通路 边界条件 一次审查可以发现多个错误,可以减少系统验证的总工作量。 将程序作为一个 整体 ,对错误的定位和改正十分困难。 自顶向下集成 从主控程序模块开始,沿着程序控制

    2023年04月22日
    浏览(50)
  • 软件测试中如何编写单元测试用例(白盒测试)

    目录 前言: 一、 单元测试的概念 二、开始测试前的准备 三、开始测试 四、完成测试 前言: 单元测试是软件测试中一种重要的测试方法,它是在代码级别进行测试,通过对每个模块或功能进行独立测试来保障代码的正确性和可靠性。单元测试可以有效地避免产生隐藏的代

    2024年02月09日
    浏览(51)
  • 软件测试——测试的分类(重点:黑盒测试、白盒测试、单元测试、集成测试、系统测试)

    界面是直接和用户进行交互的,界面设计的好坏决定了用户使用软件的直观感受 界面测试(UI 测试)一般包括以下内容: 对比 UI 设计稿,验证系统显示界面的一致性和正确性 验证界面上每个功能的正确性 验证界面排版布局是否合理。字体大小、图片排版、清晰程度等 验证

    2024年02月09日
    浏览(61)
  • 软件测试之测试的分类(重点:黑盒测试、白盒测试、单元测试、集成测试、系统测试)

    界面是直接和用户进行交互的,界面设计的好坏决定了用户使用软件的直观感受 界面测试(UI 测试)一般包括以下内容: 对比 UI 设计稿,验证系统显示界面的一致性和正确性 验证界面上每个功能的正确性 验证界面排版布局是否合理。字体大小、图片排版、清晰程度等 验证

    2024年02月03日
    浏览(55)
  • 一个黑盒测试和白盒测试区别的软件测试面试题,错失15koffer

    软件测试是确保软件质量的重要环节,而在软件测试中,黑盒测试和白盒测试是两种常见的测试方法。跟小一起学习黑盒测试和白盒测试区别: 它们在测试的角度和目标上存在显著区别,本文将深入探讨这两种测试方法的定义、特点、应用场景以及区别,以帮助读者更好地理

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包