[发明专利]一种检测代码覆盖率方法及装置在审
申请号: | 202111063950.5 | 申请日: | 2021-09-10 |
公开(公告)号: | CN113836006A | 公开(公告)日: | 2021-12-24 |
发明(设计)人: | 刘光宗 | 申请(专利权)人: | 深圳前海微众银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 彭燕 |
地址: | 518027 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 检测 代码 覆盖率 方法 装置 | ||
本申请实施例提供了一种检测代码覆盖率方法及装置,涉及金融科技(Fintech)技术领域,该方法包括:获取待测代码文件以及待测代码文件对应的索引文件,在运行待测代码文件的过程中,针对待测代码文件中插入的每个测试探针,若测试探针被触发,则确定测试探针在索引文件中关联的目标元素,并更新目标元素。在待测代码文件运行结束时,根据索引文件中各个探针计数数组中的元素,确定待测代码文件的代码覆盖率。当测试探针被触发时,通过索引文件,快速确定与测试探针相关联的探针计数数组中的元素,提高了查找速度。子文件中各个测试探针与探针计数数组中的元素一一对应,提高了检测代码覆盖率的精度。
技术领域
本申请实施例涉及金融科技(Fintech)技术领域,尤其涉及一种检测代码覆盖率方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。
为了提高软件开发的质量,往往需要对软件进行代码覆盖率统计。目前业界方案分为两种主流,运行时分析和注入分析,其中,运行时分析主要通过Java虚拟机监视接口(JVMPI)和Java虚拟机工具接口(JVMTI)去统计,而注入分析又分为源码注入和字节码注入的方式。
由于源码注入会入侵和破坏原有的代码结构,所以业界普遍偏好使用字节码注入的方式,字节码注入分析一般采用JaCoCo技术,即通过插桩模式插入覆盖率统计的探针(Probe),达到测试覆盖率统计的目的。然而,采用JaCoCo检测代码覆盖率的方式的使用场景受限,容易与其他测试任务冲突,从而影响检测代码覆盖率的效率和准确性。
发明内容
本申请实施例提供了一种检测代码覆盖率方法及装置,用于提高检测代码覆盖率的效率和准确性。
一方面,本申请实施例提供了一种检测代码覆盖率方法,该方法包括:
获取待测代码文件以及所述待测代码文件对应的索引文件,所述待测代码文件包括至少一个子文件,所述索引文件包括所述待测代码文件对应的根文件标识与所述至少一个子文件各自对应的子文件标识之间关联关系,以及每个子文件对应的探针计数数组,所述探针计数数组中每个元素与相应子文件中包含的一个代码逻辑分支对应的一个测试探针关联;
在运行所述待测代码文件的过程中,针对所述待测代码文件中插入的每个测试探针,若所述测试探针被触发,则确定所述测试探针在所述索引文件中关联的目标元素,并更新所述目标元素;
在所述待测代码文件运行结束时,根据所述索引文件中各个探针计数数组中的元素,确定所述待测代码文件的代码覆盖率。
一方面,本申请实施例提供了一种检测代码覆盖率装置,该装置包括:
获取模块,用于获取待测代码文件以及所述待测代码文件对应的索引文件,所述待测代码文件包括至少一个子文件,所述索引文件包括所述待测代码文件对应的根文件标识与所述至少一个子文件各自对应的子文件标识之间关联关系,以及每个子文件对应的探针计数数组,所述探针计数数组中每个元素与相应子文件中包含的一个代码逻辑分支对应的一个测试探针关联;
更新模块,用于在运行所述待测代码文件的过程中,针对所述待测代码文件中插入的每个测试探针,若所述测试探针被触发,则确定所述测试探针在所述索引文件中关联的目标元素,并更新所述目标元素;
统计模块,在所述待测代码文件运行结束时,根据所述索引文件中各个探针计数数组中的元素,确定所述待测代码文件的代码覆盖率。
可选地,所述获取模块具体用于:
根据所述待测代码文件与所述至少一个子文件之间的关联关系,以及所述至少一个子文件各自包含的代码逻辑分支,构建所述待测代码文件对应的索引文件。
可选地,所述获取模块还用于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海微众银行股份有限公司,未经深圳前海微众银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111063950.5/2.html,转载请声明来源钻瓜专利网。