[发明专利]代码覆盖率测试方法、装置、电子设备及存储介质在审
申请号: | 202011439613.7 | 申请日: | 2020-12-10 |
公开(公告)号: | CN112559337A | 公开(公告)日: | 2021-03-26 |
发明(设计)人: | 高林龙 | 申请(专利权)人: | 平安普惠企业管理有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 深圳市沃德知识产权代理事务所(普通合伙) 44347 | 代理人: | 高杰;于志光 |
地址: | 518000 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 覆盖率 测试 方法 装置 电子设备 存储 介质 | ||
本发明涉及测试技术领域,揭露了一种代码覆盖率测试方法,包括:获取系统源代码,识别所述系统源代码中存在的差异代码,对所述差异代码执行插桩处理,形成差异代码插桩文件;将所述系统源代码进行打包,得到系统运行包;利用预设的系统测试机对所述系统运行包进行差异代码测试,得到测试代码插桩文件;计算所述测试代码插桩文件与所述差异代码插桩文件的代码覆盖率,生成代码覆盖率报告。本发明还提出一种代码覆盖率测试装置、电子设备以及存储介质。此外,本发明还涉及区块链技术,所述系统源代码可存储于区块链中。本发明可以提高代码覆盖率测试的准确率。
技术领域
本发明涉及系统测试领域,尤其涉及一种代码覆盖率测试方法、装置、电子设备及计算机可读存储介质。
背景技术
代码覆盖(Code coverage)是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。目前代码覆盖率通常采用伊斯坦布尔技术进行测试,但是通过伊斯坦布尔技术实现代码覆盖率测试存在以下几种缺陷:
第一、伊斯坦布尔会对整个系统项目所有代码打桩测试,对于已经稳定上线,不涉及测试范围的代码也会一并打上测试桩,从而会影响代码覆盖率测试的准确性;
第二、伊斯坦布尔采用源码转AST树再转化成插桩代码,将插桩代码完全混入系统项目源代码,经过伊斯坦布尔混淆过的系统项目源代码,如一堆乱码,完全看不出系统项目源代码,从而影响代码覆盖率测试的准确性;
第三、伊斯坦布尔无法有效处理多仓库,多框架混合在一个系统项目的代码覆盖率测试,从而无法了解到哪一段系统项目的源代码有没有被覆盖,进而会影响代码覆盖率测试的准确性。
综上所述,目前代码覆盖率测试存在准确性较低的问题。
发明内容
本发明提供一种代码覆盖率测试方法、装置、电子设备及计算机可读存储介质,其主要目的在于提高代码覆盖率测试的准确性。
为实现上述目的,本发明提供的一种代码覆盖率测试方法,包括:
获取系统源代码,识别所述系统源代码中存在的差异代码,对所述差异代码执行插桩处理,形成差异代码插桩文件;
将所述系统源代码进行打包,得到系统运行包;
利用预设的系统测试机对所述系统运行包进行差异代码测试,得到测试代码插桩文件;
计算所述测试代码插桩文件与所述差异代码插桩文件的代码覆盖率,生成代码覆盖率报告。
可选地,所述识别所述系统源代码中存在的差异代码,包括:
从开源分布式版本控制系统查询与所述系统源代码对应的开源代码;
根据所述开源代码,从所述系统源代码中获取差异代码。
可选地,所述将所述系统源代码进行打包,得到系统运行包,包括:
获取所述系统源代码的代码编译环境中,在所述代码编译环境中建立所述系统源代码与本地仓库的存储依赖;
根据所述存储依赖,将所述系统源代码保存至所述本地仓库中,生成系统运行包。
可选地,所述利用预设的系统测试机对所述系统运行包进行差异代码运行测试,得到测试代码插桩文件,包括:
利用所述系统测试机中的本地测试机测试所述系统运行包的差异代码,得到本地测试结果;
利用所述系统测试机中的服务器测试机测试所述系统运行包的差异代码,得到服务器测试结果;
合并所述本地测试结果和所述服务器测试结果,得到所述测试代码插桩文件。
可选地,所述对所述差异代码执行插桩处理,形成差异代码插桩文件,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安普惠企业管理有限公司,未经平安普惠企业管理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011439613.7/2.html,转载请声明来源钻瓜专利网。