软件测试用例覆盖率怎么算,如何计算增量测试覆盖率

2023-11-15

为了保证代码质量,一般会要求提交的源码要有测试用例覆盖,并对测试覆盖率有一定的要求,在实践中不仅会考核存量代码覆盖率(总体覆盖率)还会考核增量代码的覆盖率。

或者说增量覆盖率更有实际意义,测试用例要随源码一并提交,实时保证源码的质量,而不是代码先行,测试用例后补,这有些应付的意思。

对于存量代码覆盖率主流的测试工具(框架)都是默认支持的,配置reporter相关参数,执行完测试用例就会生成测试报告。

对于增量测试覆盖率主流的测试工具一般没有支持,我想计算增量代码貌似不是测试工具该干的事,所以主流测试工具并没有提供这一功能。

那么如果计算增量覆盖率呢?

计算增量测试覆盖率,总共需要3步:

·计算出增量代码的所有行号

·计算出测试未覆盖的代码的所有行号

·对比计算增量代码被测试覆盖的比例,得出增量覆盖率

是不是很简单,有没有一种 “道理我都懂,就是过不好这一生的赶脚”

一、计算增量代码的所有行号

代码管理一般都会用到 GIT 这个工具,GIT提供了非常强大的管理增量代码的能力,因此,可以利用GIT这一特性,通过git diff(参考文献1) 这个命令获取增量代码。

git diff命令可以使用如下格式,用来对比不同commit(或分支)间的增量代码

git diff []

其中可以是分支名,对比分支间的差异,则是 git diff [] targetBranchName sourceBranchName。可以简写为 git diff targetBranchName 表示对比当前分支与目标分支间的代码增量差异。

例如 git diff master 生成当前分支与master分支的增量信息,当有多个文件变化时,会有多个这样的信息块。

4a8f73840fc6fb7d34553d3df94f0f84.png

·第1部分是发生变化的文件名。---表示文件发生了删除行 +++表示文件发生了新增的行,当---和+++后面是文件路径(相对代码根目录的相对路径)。

·如果某个文件是新增文件,则---后面是/dev/nul

·如果某个文件被删除了,则+++后面是/dev/nul

·如果文件发生修改,则---和+++后面都有文件名

·先介绍第3部分,因为第2部分的解读需要用第3部分辅助。第3部分是详细的含有上下文的增量信息(

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件测试用例覆盖率怎么算,如何计算增量测试覆盖率 的相关文章

  • Python优雅的日志——loguru

    loguru RECOMMENDATION 影视 loguru 据小提莫观察 在python的使用者中 善于聪明 偷懒 以及不重复造轮子已经成为大家的共识 正所谓 人生苦短 我用python 作为python的爱好者 肯定是喜欢python
  • 【分析】segments的version_map_memory指标具体表示什么?

    ES有很多的监控指标 其中有一些指标官方解释的实在模糊 比如version map memory byte units Total amount of memory used by all version maps across all s
  • JAVA 集合之迭代器Iterator

    Java语言中的Iterator功能比较简单 只能单向移动 它的主要功能有四种 1 凡是实现Collections接口的数据结构都可以使用该方法 第一次调用Iterator的next 方法时 它返回序列的第一个元素 2 使用next 获得序
  • 前哈工大教授开发的ChatALL火了!可同时提问17个聊天模型,ChatGPT/Bing/Bard/文心/讯飞都OK...

    丰色 发自 凹非寺量子位 公众号 QbitAI 今天的你 是否还在几个聊天大模型之间 反复横跳 毕竟各家训练数据和方法不尽相同 擅长和不擅长的东西也都不一样 现在 不用这么麻烦了 有人开发了一个名叫 ChatALL 的应用 可以将你的提问同
  • CTFShow Web7&Web8

    这两道题都是版本控制工具直接部署到生产环境中造成的信息泄露 所以在此一起总结 题目中给出了明显的提示 版本控制很重要 但不要部署到生产环境更重要 和备份文件泄露的题型一样 笔者自己的感觉是这种题型最常用的工具就是dirsearch 因此选择
  • C++类的默认成员函数 —— 析构函数

    一 概念 析构函数 与构造函数功能相反 析构函数不是完成对对象本身的销毁 局部对象销毁工作是由编译器完成的 而对象在销毁时会自动调用析构函数 完成对象中资源的清理工作 二 特征 析构函数是特殊的成员函数 其特征如下 1 析构函数名是在类名前
  • 物联网、区块链、元宇宙和虚拟数字人离普罗大众有多远?

    首先 我们最早理解的数字人就是数字虚拟的一个假人 可能看起来很像二次元玩偶的样子 今天我觉得数字人是一种虚拟的数字身份 无所谓你的形象是仿真或是任何形象 包括你在现实中无法实现的形象 你在梦想中所渴望的概念 无论它是什么样的 它是你在另外一
  • 微信小程序,计算时分秒时间差

    shijiancha function faultDate completeTime var stime Date parse new Date faultDate var etime Date parse new Date complet
  • r语言(总)(我命油我不油天)

    seq等间隔函数 seq from to by length out along with from to 为数值 表示开始和结束 by为数值 表示间隔 length out为数值 表示数列长度 along with为向量 表示数列长度与该
  • fabric基本概念

    Hyperledger fabric基本概念 首先fabric是由IBM贡献的超级账本框架 它是一个利用现有成熟的技术来组合而成的一个区块链技术的实现 它是一种允许可插拔实现各种功能的的模块化架构 它具有强大的容器技术 来承载各种主流语言来
  • C语言进阶——文件管理

    每当我们写好一段代码运行结束之后 再次运行的时候就会发现 之前在终端上输入的数据都会消失 那么如何把之前输入的数据保存下来呢 我们一般把数据持久化的方式有把数据存放在磁盘文件中 存放到数据库 打印等方式进行保存 使用文件我们可以直接将数据保
  • Mysql字符串处理函数详细介绍、总结

    1 ASCII str 返回字符的 ASCII 码值 返回值为字符串str 的最左字符 第一个字符 的数值 即取得最左字符的 ascii 码 假如str 为空字符串 则返回值为 0 假如 str 为 NULL 则返回值为 NULL ASCI
  • unity 不显示UI项,代码无法引用UI类

    如果在unity项目中遇到在Hierarchy面板右键发现没有ui这个选项 在vs里无法引用到UI类时可以进行以下操作 1 可以在unity的Project面板 选中Assets文件夹 右键选择 show in Explorer选项 开打资
  • vue3.0 新的api属性

    vue3 0 只需要升级vuecli4 0以上的版本就可以选择性的安装了 获取路由对象 import useRouter from vue router const router useRouter router push 即可调用路由跳转
  • 【转载】国内主要的量化交易平台及链接

    Bigquant 掘金 优矿 万矿 聚宽 米筐 真格 镭矿 量化云 点宽等 附 网站网址 Bigquant https bigquant com 掘金 https www myquant cn 优矿 https uqer io v3 com
  • java基础 基本包装类 System Math Array BigInteger BigDecimal

    基本类型包装类 1 1 基本类型包装类概述 在实际程序使用中 程序界面上用户输入的数据都是以字符串类型进行存储的 而程序开发中 我们需要把字符串数据 根据需求转换成指定的基本数据类型 如年龄需要转换成int类型 考试成绩需要转换成doubl
  • 面试题 08.08. 有重复字符串的排列组合--回溯算法

    LeetCode 面试题 08 08 有重复字符串的排列组合 有重复字符串的排列组合 编写一种方法 计算某字符串的所有排列组合 示例1 输入 S qqe 输出 eqq qeq qqe 示例2 输入 S ab 输出 ab ba 解法 回溯法
  • 二分查找及二分答案

    一 二分思想 二分是一种常用且非常精妙的算法 常常是我们解答问题的突破口 二分的基本用途是在单调序列或单调函数中做查找操作 因此当问题的答案具有单调性时 就可以通过二分把求解转化为判定 根据复杂度理论 可知判定的难度小于求解 这使得二分的应
  • (优雅的使用)matlab脚本编程习题2

    matlab脚本编程习题2 输入一个四位整数 求出各位数字之和 如果该和能被3整除 输出 这个数可以被3整除 否则输出 这个数不可以被3整除 num input input the four digit integer n A zeros

随机推荐

  • C++解析xml(使用tinyxml)

    环境是vs2010 Windows 7 timyxml库我是在这里下载的 直接就能编译 编译后得到tinyxml lib 使用时当然也需要tinyxml h文件 如果不想编译 这里能下载我编译好的lib 顺便附赠h文件 我程序中解析的xml
  • 【计组】学习笔记1.1:8421码和ASCII码

    8421码 8421码即BCD码 由于人们习惯日常使用十进制数 而计算机处理时使用的是二进制数 而两种数制相互转换十分麻烦 因此产生了8421码映射关系 其映射运算例如 1001转化为十进制数9 1 8 0 4 0 2 0 1 8 0 0
  • python算法中的机器学习算法之半监督学习和强化学习(详解)

    目录 学习目标 学习内容 1 半监督学习 Semi Supervised Learning 基于图的半监督学习
  • 编码器计数原理与电机测速原理——多图解析

    编码器 是一种用来测量机械旋转或位移的传感器 它能够测量机械部件在旋转或直线运动时的位移位置或速度等信息 并将其转换成一系列电信号 编码器分类 按监测原理分类 光电编码器 光电编码器 是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或
  • 使用Pycharm,tensorflow1.13.1中的keras等库出现cannot find declaration to go to的问题

    使用Pycharm tensorflow1 13 1中的keras等库出现cannot find declaration to go to的问题 使用Pycharm编写python程序 import numpy os 使用ctrl 鼠标左键
  • python编译成c代码_cython编译Python为c语言

    第一种办法 执行命令 cython test py 结果 会在同一目录下面生成test c文件 执行命令 gcc c fPIC I usr include python2 7 test c 结果 在同一目录下面生成test o文件 执行命令
  • Windows下Apache Tomcat 8安装配置

    1 环境配置 1 安装好jar jdk文件包 jdk1 8 0 66与jre1 8 0 66 打开我的电脑 属性 高级 环境变量 新建系统变量JAVA HOME 和CLASSPATH 变量名 JAVA HOME 变量值 C Program
  • vue调用高德地图实现定位

    vue调用高德地图实现定位 第一步创建高德地图key 第二步 下载vue amap npm install vue amap save 第三步 在项目main js引入vue amap import AMap from vue amap V
  • RedmiBook pro15 2023款折腾笔记(7840HS)amd-pstat解决APU睿频问题

    这里记录一下RedmiBook pro15 2023款笔记本 7840HS 搭建ubuntu 22 04系统的记录 留给正好需要在这个笔记本上安装linux环境的童鞋参考一下 其他AMD的APU都是类似的 拿到机器过后安装ubuntu 22
  • 操作系统终端输入大小限制

    问题描述 使用c 写算法题时 测试用例是一个长字符串 上万字符 但运行结果显示字符串读入的长度远远小于输入长度 并且不同操作系统下面显示出了不同的bug macos 输入字符串长度只有1000 超过这个长度成都就会卡在cin那行代码 ubu
  • 裸片IC的简单介绍以及裸片IC的封装设计

    最近项目一直用到一种比较旧的PCB生产工艺 裸片IC 也就是绑定的工艺 1 什么是裸片IC 裸片既是在加工厂生产出来的芯片 即是晶圆经过切割测试后没有经过封装的芯片 大小一般在几毫米左右 边上有用于连接金属线的的焊盘或者小孔 金属线这是连接
  • 02rapidJson学习之数组的创建、遍历

    02rapidJson学习之数组的创建 遍历 概述 创建数组时我们需要注意以下内容 1 不能直接返回数组 我试过不行 因为数组必须依赖某一对象 即若我们不将数组添加到doc上 而直接返回数组是不行的 1 数组的创建 从doc中获取strin
  • Github 本地合并 (merge) 他人提交的 pr

    Github 上有些项目可能作者长时间没有进行维护 会出现有些新的 pr 没有合并到主分支 master 上 这时如果想在本地应用这个新的 pr 呢 一般来说主要有以下几种方式 针对提交的pr 查看具体的改动文件和改动内容 然后在本地进行对
  • git log 后一直出现:(冒号)的原因以及处理方法

    博客主页 https blog csdn net mukes 欢迎点赞 收藏 留言 如有错误敬请指正 本文由 mukes 原创 首发于 csdn 问题重现 在 git bash 中输入 git log 时出现 冒号 如下图所示 问题描述 一
  • Android酷炫实用的开源框架(UI框架)

    Android酷炫实用的开源框架 UI框架 前言 忙碌的工作终于可以停息一段时间了 最近突然有一个想法 就是自己写一个app 所以找了一些合适开源控件 这样更加省时 再此分享给大家 希望能对大家有帮助 此博文介绍的都是UI上面的框架 接下来
  • web初始

    个人学习开始 写的不好 请大佬指教
  • 机器学习实战——Kmeans聚类算法

    机器学习实战 Kmeans聚类算法 1 聚类算法介绍 1 1 K 均值聚类 1 2 聚类效果的评价 2 sklearn中的实现 1 聚类算法介绍 在无监督学习中 训练样本的标记是未知的 目标是通过对无标记训练样本的学习来揭示数据的内在性质及
  • 纷玩岛演唱会下单代码

    继大麦M端之后 再发现一个演唱会平台 纷玩岛 此平台不像大麦 猫眼那么火爆 相对来说比较容易研究 通过抓包软件发现下单很简单 就一个JWT登录后的头部token而已 下载地址 https download csdn net download
  • 结构体对函数指针的高级封装应用

    分层设计考虑 作用 降低对底层应用程序的高耦合度 示例 include mac h typedef struct phy t char channel char snd fail count char name char open flag
  • 软件测试用例覆盖率怎么算,如何计算增量测试覆盖率

    为了保证代码质量 一般会要求提交的源码要有测试用例覆盖 并对测试覆盖率有一定的要求 在实践中不仅会考核存量代码覆盖率 总体覆盖率 还会考核增量代码的覆盖率 或者说增量覆盖率更有实际意义 测试用例要随源码一并提交 实时保证源码的质量 而不是代