软件测试Day5|软件测试理论03

白盒测试方法

针对程序的代码进行测试,代码覆盖率高;缺点:覆盖所有代码路径大、业务功能可能覆盖不全、测试开销大

  • 静态方法:1)桌面检查(一个人检查);2)代码审查(开会议检查,卡法人员说明功能;主要是代码规范);3)代码走查(开会,与会人员提前准备测试数据,人工计算逻辑走向;主要是功能实现);4)代码扫描工具
  • 动态方法:
    • 逻辑覆盖法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
    • 基本路径测试法

逻辑覆盖法

  • 是通过对程序逻辑结构的遍历实现程序的覆盖
  • 覆盖率 = 至少被执行一次的item数 / item总数
    在这里插入图片描述

1.语句覆盖法

  • 语句覆盖率 = 至少被执行一次的语句数量 / 可执行的语句总数
  • 以下语句覆盖率 = 4/4 = 100%
数据语句
x=3,y=1,magic=21,4
x=-3,y=-1,magic=-22,3,4
  • 局限:语句覆盖不能准确的判断运算中的逻辑关系错误;【如果语句a中的 && 变成 || ,以上两个用例仍正确通过】

2.判定覆盖法

  • 判定覆盖也称为分支覆盖;使得程序中的每个判断执行的”真“”假“都至少被执行一次
  • 判定覆盖率 = 每个判定的真假值至少出现一次 / 判定结果的总数
  • 以下判定覆盖率 = 4/4 = 100%
数据P1P2
x=3,y=1,magic=2TF
x=-1,y=0,magic=-2FT
  • 判定覆盖能满足语句覆盖
  • 局限:判定覆盖不能准确的判断运算中的逻辑关系错误;【如果语句a中的 && 变成 || ,以上两个用例仍正确通过】

3.条件覆盖法

  • 设计测试用例,使得每个判定中的每个条件至少有一次取真值,有一次取假值
  • 条件覆盖率 = 每个条件的真假值至少出现一次 / 条件结果的总数
  • 以下条件覆盖率 = 6/(2*3) = 100%
数据C1C2C3P1P2路径
x=3,y=0,magic=-2TFTFTa-c-d-f
x=-1,y=3,magic=2FTFFFa-c-e-f
  • 局限:100%条件覆盖并不能完全覆盖判定覆盖;

4.判定条件覆盖法

  • 设计测试用例,使得每个判定以及每个判定中的每个条件至少有一次取真值,有一次取假值;即同时满足判定覆盖和条件覆盖

  • 判定条件覆盖率 = 每个判定和每个条件的真假值至少出现一次 / (判定结果总数+条件结果总数)

  • 以下数据判定条件覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=0,magic=-2FFTFTa-c-d-f
  • 判定条件覆盖能满足判定覆盖语句覆盖条件覆盖
  • 局限:判定条件覆盖可能不能准确的判断运算中的逻辑关系错误(or);【如果语句a中的 && 变成 || ,以上两个用例仍正确通过;】

5.条件组合覆盖法

  • 设计测试用例,使得每个判定中的每个条件所有可能组合至少进行一次

  • 判定条件覆盖率 = 条件组合至少出现一定的数量 / (条件组合总数)

  • 案例中判定2个-》条件2+1个-》条件组合2*2+2=4+2=6

  • 以下数据条件组合覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=0,magic=-2TFTFTa-c-d-f
x=-3,y=15,magic=2FTFFFa-c-e-f
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=0,magic=-2FFTFTa-c-e-f
  • 条件组合覆盖能满足判定条件覆盖判定覆盖语句覆盖条件覆盖
  • 局限:不能保证所有路径都覆盖【以上差a-b-d-f】

6.路径覆盖法

  • 设计测试用例,覆盖程序

  • 路径覆盖率 = 至少被执行一次的路径数 / 总路径数

  • 案例中两个分支 2*2 = 4条路经

  • 以下数据条件组合覆盖率 = 6/(2*3) = 100%

数据C1C2C3P1P2路径
x=3,y=3,magic=-2TTTTTa-c-d-f
x=-3,y=3,magic=-2FTTFTa-c-d-f
x=3,y=3,magic=2TTFTFa-b-e-f
x=-3,y=15,magic=-2FTFFFa-c-e-f
  • 路径覆盖不能满足条件覆盖也就不能满足条件组合覆盖以及判定条件覆盖【C2为假没有】
  • 局限:逻辑循环覆盖工作量巨大

基本路径覆盖法

  • 在程序控制流图的基础上,通过分析程序的环路复杂性,导出可执行路径集合,从而设计测试用例。
  • 案例:数字代表代码行数
    在这里插入图片描述在这里插入图片描述
    流图G的圈复杂度为V(G)=路径总数,E为边的数量,N为节点的数量,P为判定节点的数量
    1)V(G) = E-N+2 = 10-8+2 = 4;
    2)V(G) = P+1 = 3+1 = 4
数据结果路径
iRecodNum=0,x=04-14
iRecodNum=1,iTtype=0x=24-6-7-14
iRecodNum=1,iTtype=1x=104-6-9-10-13-4-14
iRecodNum=1,iTtype=2x=204-6-9-12-13-4-14

总结

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

逻辑覆盖方法间的覆盖关系 and 发现错误能力排序

语句覆盖判定覆盖判定条件覆盖条件组合覆盖
语句覆盖条件覆盖判定条件覆盖条件组合覆盖
语句覆盖判定覆盖路径覆盖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/94082.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段

『SpringBoot 源码分析』run() 方法执行流程:(2)刷新应用上下文-准备阶段 基于 2.2.9.RELEASE问题:当方法进行了注释标记之后,springboot 又是怎么注入到容器中并创建类呢? 首先创建测试主程序 package …

Spring——Spring Boot基础

文章目录 第一个helloword项目新建 Spring Boot 项目Spring Boot 项目结构分析SpringBootApplication 注解分析新建一个 Controller大功告成,运行项目 简而言之,从本质上来说,Spring Boot 就是 Spring,它做了那些没有它你自己也会去做的 Spri…

积跬步至千里 || 数学基础、算法与编程

数学基础、算法与编程 1. BAP 技能 BAP 技能是指基础(Basic)、算法(Algorithm)和编程(Programm)三种基本技能的深度融合。理工科以数学、算法与编程为根基,这三个相辅相成又各有区别。 (1)数学以线性代数为主要研究工具和部分微积分技术为手…

【广州华锐互动】AR远程连接专家进行协同管理,解放双手让协同更便捷

AR远程协同系统是一种基于AR技术,实现远程设备维修和技术支持的系统。该系统通过将虚拟信息叠加在现实世界中,实现对设备的全方位监控和管理,并可以通过AR眼镜等终端设备,实时查看设备的各项数据和信息,为设备维修提供…

我能“C“——指针进阶(上)

目录 指针的概念 1. 字符指针 2. 指针数组 3. 数组指针 3.1 数组指针的定义 3.2 &数组名VS数组名 3.3 数组指针的使用 4. 数组参数、指针参数 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5. 函数指针 阅读两段有趣的代码&…

Message: ‘chromedriver‘ executable may have wrong permissions.

今天运行项目遇到如下代码 driverwebdriver.Chrome(chrome_driver, chrome_optionsoptions)上述代码运行报错如下: Message: chromedriver executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home出错的原…

输出图元(四)8-2 OpenGL画点函数、OpenGL画线函数

4.3 OpenGL画点函数 要描述一个点的几何要素,我们只需在世界坐标系中指定一个位置。然后该坐标位置和场景中已有的其他几何描述一起被传递给观察子程序。除非指定其他属性值,OpenGL 图元按默认的大小和颜色来显示。默认的图元颜色是白色&#x…

TL6478(TI TMS320C6748 DPS)EVM开发板技术讲座 第二讲:USB转串口驱动安装

在开展我们的TL 6748 DSP开发版开发之前,需要先安装usb转串口驱动,才能使得我们的电脑上查询到该设备,使用该设备。底板上存在UART1、UART2,将评估板的 UART2 RS232 调试串口通过 RS232 交叉串口母母线、USB 转 RS232 公头串口线连接至 PC 机的 USB 接口。1. 驱动下载 USB…

【数据结构】队列---C语言版(详解!!!)

文章目录 🐸一、队列的概念及结构🍄1、队列的概念定义🍄2、动图演示 🐸二、队列的实现🐸三、链表结构队列详解🍎创建队列的结构⭕接口1:定义结构体(QNode、Queue)⭕接口2…

基于Spring Gateway路由判断器实现各种灰度发布场景

文章目录 1、灰度发布实现1.1 按随机用户的流量百分比实现灰度1.2 按人群划分实现的灰度1.2.1 通过Header信息实现灰度1.2.2 通过Query信息实现灰度1.2.3 通过RemoteAdd判断来源IP实现灰度 2、路由判断器2.1. After2.2. Before2.3. Between2.4. Cookie2.5. Header2.6. Host2.7.…

ThePASS研究院|以Safe为例,解码DAO国库管理

本研究文章由ThePASS团队呈现。ThePASS是一家开创性的DAO聚合器和搜索引擎,在为DAO提供洞察力和分析方面发挥着关键作用。 Intro 随着去中心化自治组织(DAOs)的发展,它们被赋予了越来越多的角色和期望。在这种巨幅增长的背景下&…

数据结构入门 — 队列

本文属于数据结构专栏文章,适合数据结构入门者学习,涵盖数据结构基础的知识和内容体系,文章在介绍数据结构时会配合上动图演示,方便初学者在学习数据结构时理解和学习,了解数据结构系列专栏点击下方链接。 博客主页&am…