当前位置: 首页 > article >正文

怎么做好白盒测试?

在这里插入图片描述


白盒测试

  • 一、什么是白盒测试?
  • 二、白盒测试特点
  • 三、白盒测试的设计方法
    • 1、逻辑覆盖法
      • 1、测试设计方法—语句覆盖
        • a、用例设计如下:
        • b、语句覆盖的局限性
      • 2、测试设计方法—判定覆盖
        • a、测试用例如下:
        • b、判定覆盖的局限性
      • 3、测试设计方法—条件覆盖
        • a、测试用例如下:
        • b、条件覆盖的局限性
      • 4、测试设计方法—判定条件覆盖
        • a、测试用例如下:
        • b、判定条件覆盖的局限性
      • 5、测试设计方法—条件组合覆盖
        • a、测试用例如下:
        • b、条件组合覆盖的局限性
      • 6、路径覆盖
        • a、用例设计
        • b、路径覆盖局限性
    • 2、基本路径测试法
      • a、测试设计方法——基本路径测试法
  • 四、总结

一、什么是白盒测试?

白盒测试,又称结构测试或逻辑驱动测试,是一种软件测试方法,它基于对程序内部结构的理解来进行。在这个测试过程中,测试人员就像是有源代码的“盒子”里的操作员一样,关注的是代码的各个组件、算法、数据结构以及控制流程测试者会检查每一个逻辑路径、循环条件、分支判断等,验证输入是否按预期处理并得出正确的输出结果。白盒测试通常用于单元测试,能提供更深入的覆盖度,但无法揭示用户界面或外部接口的问题。
在这里插入图片描述

二、白盒测试特点

优点:

  • 代码覆盖率高

缺点:

  • 覆盖所有代码路径难度大
  • 业务功能测试覆盖不全
  • 测试开销大

黑盒测试:每个项目都需要测试
白盒测试:业务逻辑很复杂的模块进行白盒测试,保证路径尽可能的覆盖全面。

三、白盒测试的设计方法

静态

  • 桌面检查:研发交叉检查
  • 代码审查:组织会议,由研发讲解自己的代码内容,为什么这么写。(开发、测试人员参加)
  • 代码走查:可以理解为showcases(功能实现)
  • 代码扫描工具:不能完全替代上面的方法,只能检查代码规范问题。SonarQube

动态

  • 逻辑覆盖法
    • 语句覆盖
    • 判定覆盖
    • 条件覆盖
    • 判定条件覆盖
    • 条件组合覆盖
    • 路径覆盖
  • 基本路径测试法

1、逻辑覆盖法

是通过对程序逻辑结构的遍历实现程序的覆盖。

在这里插入图片描述
对逻辑代码转化为代码执行流程图

代码案例:
在这里插入图片描述
在这里插入图片描述

1、测试设计方法—语句覆盖

设计测试用例,使得程序中每条语句至少被执行一次。

在这里插入图片描述

a、用例设计如下:

在这里插入图片描述

b、语句覆盖的局限性

在六种逻辑覆盖标准中,语句覆盖标准最弱。
在这里插入图片描述

2、测试设计方法—判定覆盖

判定覆盖:也叫分支覆盖,设计测试用例,使得程序中的每个判断的“真”和“假”都至少被执行一次。即:程序中的每个分支至少执行一次。

在这里插入图片描述

a、测试用例如下:

在这里插入图片描述

b、判定覆盖的局限性

只要满足了判定覆盖标准就一定满足语句覆盖的标准
在这里插入图片描述

3、测试设计方法—条件覆盖

设计测试用例,使得判定中的每个条件至少有一次取真值,有一次取假值。
在这里插入图片描述

a、测试用例如下:

在这里插入图片描述

b、条件覆盖的局限性

条件覆盖并不能保证判定覆盖
在这里插入图片描述

4、测试设计方法—判定条件覆盖

设计测试用例,
1、使得被测程序中的每个判断本身的判定结果(真假)至少满足一次,同时;
2、每个逻辑条件的可能值(真假)也至少被满足一次。
即同时满足100%判定覆盖和100%条件覆盖的标准。

在这里插入图片描述

a、测试用例如下:

在这里插入图片描述

b、判定条件覆盖的局限性

满足判定-条件覆盖标准一定能够满足条件覆盖、判定覆盖和语句覆盖。
在这里插入图片描述

5、测试设计方法—条件组合覆盖

设计测试用例,使得被测试程序中的每个判定中条件结果的所有可能组合至少执行一次。
在这里插入图片描述

a、测试用例如下:

在这里插入图片描述

b、条件组合覆盖的局限性

条件组合覆盖能满足判定覆盖、条件覆盖、判定条件覆盖、也就包括了语句覆盖。

条件组合覆盖不能保证覆盖所有的路径
在这里插入图片描述
在这里插入图片描述

6、路径覆盖

设计测试用例,覆盖程序中所有可能的路径(从头到尾)
在这里插入图片描述

a、用例设计

根据路径设计测试用例,从头到尾只要有1小段路径不同,则为不同的路径。
在这里插入图片描述

b、路径覆盖局限性

在这里插入图片描述

在这里插入图片描述

2、基本路径测试法

在程序控制流图的基础上,通过分析程序的环路复杂性,导出基本可执行路径集合,从而设计测试用例。

在这里插入图片描述

a、测试设计方法——基本路径测试法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

四、总结

主要应用于单元测试阶段
先静态、后动态
设计用例一般使用基本路径测试,重点模块使用多种覆盖率标准


http://www.kler.cn/a/407587.html

相关文章:

  • python语言基础
  • 如何在 UniApp 中实现 iOS 版本更新检测
  • QKV;LLM的原理理解1-5:1、词向量2、词的意义取决于上下文3、将词向量转化为词预测4、​注意力机制​
  • VMware虚拟机(Ubuntu或centOS)共享宿主机网络资源
  • Windows server2016设置多用户界面——保姆级教程
  • ACP科普:约翰·科特变更
  • 【MyBatis】useGeneratedKeyskeyProperty属性
  • 积分商品编辑规格里积分未会显问题处理
  • Bugku CTF_Web——my-first-sqli
  • 使用Python生成F分布表并导出为Excel文件
  • linux从0到1——shell编程7
  • WPF绑定Bind方法合集,实时更新
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-transformer.py
  • 麒麟网络负载均衡与高可用方案实践
  • 【数据结构OJ】【图论】货币套汇(图路径)
  • 十、事件类型(鼠标事件、焦点.. 、键盘.. 、文本.. 、滚动..)、事件对象、事件流(事件捕获、事件冒泡、阻止冒泡和默认行为、事件委托)
  • 【Python入门第七讲】列表(List)
  • Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图
  • chinaskills_cloud_iaas.iso镜像
  • 数据库【锁】的分类
  • Typora+PicGo+云服务器搭建博客图床
  • Github 2024-11-23 Rust开源项目日报 Top10
  • KVM虚拟机拷贝与迁移
  • 【强化学习的数学原理】第03课-贝尔曼最优公式-笔记
  • uniapp记录在微信小程序端修改复选框的样式
  • 大数据面试题每日练习--HDFS是如何工作的?