[发明专利]代码覆盖率测试方法、装置、存储介质及电子设备在审
申请号: | 202110379033.1 | 申请日: | 2021-04-08 |
公开(公告)号: | CN115203004A | 公开(公告)日: | 2022-10-18 |
发明(设计)人: | 史倩月 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京英创嘉友知识产权代理事务所(普通合伙) 11447 | 代理人: | 李柯莹 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 覆盖率 测试 方法 装置 存储 介质 电子设备 | ||
1.一种代码覆盖率测试方法,其特征在于,所述方法包括:
响应于接收到覆盖数据文件,解析所述覆盖数据文件,得到所述覆盖数据文件对应的函数覆盖信息,所述函数覆盖信息包括函数对应的函数名和覆盖次数;
根据所述函数覆盖信息和第一函数文件映射关系,确定所述函数覆盖信息对应的文件覆盖信息,所述第一函数文件映射关系用于表征源码文件对应的插桩产物中函数与函数文件间的对应关系;
从代码项目仓库获取所述源码文件相较于历史源码文件的修改文件信息,并根据所述修改文件信息在所述文件覆盖信息中确定目标文件覆盖信息;
确定所述目标文件覆盖信息对应的函数实体信息,并根据所述覆盖次数和所述函数实体信息,确定所述覆盖数据文件的行覆盖率。
2.根据权利要求1所述的方法,其特征在于,所述解析所述覆盖数据文件,得到所述覆盖数据文件对应的函数覆盖信息,包括:
解析所述覆盖数据文件,得到所述覆盖数据文件中所有函数的函数信息,并从所述函数信息中过滤未包括在所述第一函数文件映射关系中的函数信息,以得到所述覆盖数据文件对应的函数覆盖信息。
3.根据权利要求1所述的方法,其特征在于,所述确定所述目标文件覆盖信息对应的函数实体信息,包括:
从本地缓存中读取所述目标文件覆盖信息对应的函数实体信息;
若从本地缓存中读取所述目标文件覆盖信息对应的函数实体信息失败,则根据第二函数文件映射关系,从数据库中读取所述目标文件覆盖信息对应的函数实体信息,所述第二函数文件映射关系用于表征所述源码文件对应的插桩产物中函数文件与函数实体信息间的对应关系,所述数据库中存储有所述第二函数文件映射关系中各函数文件对应的函数实体信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述函数覆盖信息包括多个覆盖次数数组,每一所述覆盖次数数组具有函数标识信息,且每一所述覆盖次数数组中的每个元素用于表征对应函数中每行代码的执行次数,所述根据所述覆盖次数和所述函数实体信息,确定所述覆盖数据文件的行覆盖率,包括:
针对所述函数覆盖信息中的每一函数,执行如下处理:
确定所述函数对应的函数实体信息,并根据所述函数的函数标识信息,在所述多个覆盖次数数组中确定对应的覆盖次数数组;
根据对应的所述函数实体信息和所述覆盖次数数组,确定行覆盖信息;
聚合每一所述函数的行覆盖信息,得到所述覆盖数据文件的行覆盖率。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述函数文件映射关系是通过如下方式得到的:
解析所述源码文件对应的插桩产物,得到所述源码文件中所有函数的函数名和函数属性信息,所述函数属性信息包括函数代码块信息;
解析所述函数代码块信息,得到所述源码文件中每一函数所属的函数文件信息以及每一函数对应的代码块在所属函数文件中的位置信息;
根据所述源码文件中每一函数的函数名称、每一函数所属的函数文件信息以及每一函数对应的代码块在所属函数文件中的位置信息,建立函数文件映射关系。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
从数据库获取所述源码文件的历史行覆盖率;
将所述历史行覆盖率与所述覆盖数据文件的行覆盖率进行累加,以得到所述源码文件的目标行覆盖率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110379033.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:有机电致发光元件
- 下一篇:一种绵柔浓香型白酒的酿制工艺