[发明专利]代码覆盖率测试方法、装置、电子设备及存储介质在审
申请号: | 202011439613.7 | 申请日: | 2020-12-10 |
公开(公告)号: | CN112559337A | 公开(公告)日: | 2021-03-26 |
发明(设计)人: | 高林龙 | 申请(专利权)人: | 平安普惠企业管理有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳市沃德知识产权代理事务所(普通合伙) 44347 | 代理人: | 高杰;于志光 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 覆盖率 测试 方法 装置 电子设备 存储 介质 | ||
1.一种代码覆盖率测试方法,其特征在于,所述方法包括:
获取系统源代码,识别所述系统源代码中存在的差异代码,对所述差异代码执行插桩处理,形成差异代码插桩文件;
将所述系统源代码进行打包,得到系统运行包;
利用预设的系统测试机对所述系统运行包进行差异代码测试,得到测试代码插桩文件;
计算所述测试代码插桩文件与所述差异代码插桩文件的代码覆盖率,生成代码覆盖率报告。
2.如权利要求1所述的代码覆盖率测试方法,其特征在于,所述识别所述系统源代码中存在的差异代码,包括:
从开源分布式版本控制系统查询与所述系统源代码对应的开源代码;
根据所述开源代码,从所述系统源代码中获取差异代码。
3.如权利要求1所述的代码覆盖率测试方法,其特征在于,所述将所述系统源代码进行打包,得到系统运行包,包括:
获取所述系统源代码的代码编译环境中,在所述代码编译环境中建立所述系统源代码与本地仓库的存储依赖;
根据所述存储依赖,将所述系统源代码保存至所述本地仓库中,生成系统运行包。
4.如权利要求1所述的代码覆盖率测试方法,其特征在于,所述利用预设的系统测试机对所述系统运行包进行差异代码运行测试,得到测试代码插桩文件,包括:
利用所述系统测试机中的本地测试机测试所述系统运行包的差异代码,得到本地测试结果;
利用所述系统测试机中的服务器测试机测试所述系统运行包的差异代码,得到服务器测试结果;
合并所述本地测试结果和所述服务器测试结果,得到所述测试代码插桩文件。
5.如权利要求1所述的代码覆盖率测试方法,其特征在于,所述对所述差异代码执行插桩处理,形成差异代码插桩文件,包括:
识别所述差异代码是否存在代码插桩限制点;
在不存在代码插桩限制点时,利用代码插桩语句在所述差异代码中标记插桩点;
在存在代码插桩限制点时,利用所述代码插桩语句在所述差异代码的代码行末端标记插桩点;
获取所述差异代码的代码行以及配置文件,将所述代码行、配置文件以及插桩点进行汇总,得到所述差异代码插桩文件。
6.如权利要求5所述的代码覆盖率测试方法,其特征在于,所述计算所述测试代码插桩文件与所述差异代码插桩文件的代码覆盖率,包括:
利用下述方法计算所述测试代码插桩文件与所述差异代码插桩文件的代码覆盖率:
ρX,Y=E(XY+μxμY+σxσY)
其中,ρX,Y表示代码覆盖率,X表示差异代码插桩文件的代码行,Y表示测试代码插桩文件的代码行,μX表示差异代码插桩文件的代码参数,μY表示测试代码插桩文件的代码参数,σX表示测试代码插桩文件的配置文件,σY表示差异代码插桩文件的配置文件,E表示测试代码插桩文件与差异代码插桩文件的代码覆盖率期望。
7.如权利要求1至6中任意一项所述的代码覆盖率测试方法,其特征在于,所述代码覆盖率报告包括:差异代码覆盖率、代码行覆盖率、代码参数覆盖率以及配置文件覆盖率。
8.一种代码覆盖率测试装置,其特征在于,所述装置包括:
插桩模块,用于获取系统源代码,识别所述系统源代码中存在的差异代码,对所述差异代码执行插桩处理,形成差异代码插桩文件;
打包模块,用于将所述系统源代码进行打包,得到系统运行包;
测试模块,用于利用预设的系统测试机对所述系统运行包进行差异代码测试,得到测试代码插桩文件;
计算模块,用于计算所述测试代码插桩文件与所述差异代码插桩文件的代码覆盖率,生成代码覆盖率报告。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安普惠企业管理有限公司,未经平安普惠企业管理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011439613.7/1.html,转载请声明来源钻瓜专利网。