[发明专利]一种基于lcov实现增量代码覆盖率的检测方法、装置及设备在审
申请号: | 201911125848.6 | 申请日: | 2019-11-15 |
公开(公告)号: | CN110928776A | 公开(公告)日: | 2020-03-27 |
发明(设计)人: | 刘练;陈国庆;谢强 | 申请(专利权)人: | 武汉极意网络科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/77;G06F8/41;G06F8/61 |
代理公司: | 武汉知产时代知识产权代理有限公司 42238 | 代理人: | 易滨 |
地址: | 430000 湖北省武汉市东湖开发区大学*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 lcov 实现 增量 代码 覆盖率 检测 方法 装置 设备 | ||
本发明公开了一种基于lcov来实现增量代码覆盖率的检测方法、装置及设备,其中,通过分别将编译过程中生成的“.gcno”文件、在应用程序的运行过程中,调用覆盖率分发函数,生成对应的“.gcda”文件进行打包压缩后上传到服务端;在服务端对接收到的“.gcno”文件和“.gcda”文件进行整合后,通过lcov工具,生成“.info”文件;将生成“.info”文件与基线版本的“.info”文件进行比较,通过得到增量“.info”文件,进一步利用genhtml工具,生成覆盖率报告;根据所述覆盖率报告,得到增量代码覆盖率的检测结果。本发明将覆盖率检测与整个开发流程紧密结合在一起,生成极具可读性的覆盖率报告,通过覆盖率阈值控制Git push,以确保项目质量。
技术领域
本发明涉及软件开发代码质量监控领域,更具体地说,涉及一种基于lcov来实现增量代码覆盖率的检测方法、装置及设备。
背景技术
在软件开发的过程中,代码覆盖率是度量开发完整性的一个手段,为了进一步提高软件的交付质量,监测开发过程中的遗漏,降低线上事故,目前对代码覆盖率的检测有了新的要求,如何精准衡量覆盖度也是众多开发人员遇到的技术瓶颈。
现有的增量代码覆盖率检测方案:先获取全量代码覆盖率信息,然后通过Gitdiff获取增量代码信息,再将增量代码变更行映射至抽象语法树的行对象,遍历抽象语法树的行对象,从抽象语法树的行对象中确定增量代码的特征信息总数和增量代码的被覆盖特征信息数量,采用增量代码的被覆盖特征信息数量除以增量代码的特征信息总数,得到增量代码的覆盖率信息。
现有的检测技术一般是通过使用Xcode,通过Xcode自带工具即可检测代码覆盖率,但是由于其只能检测全量代码的覆盖率,在大的工程中,代码量巨大,在每次迭代之后,再去重新关注全量代码的覆盖率的情况下,会大大降低开发者的工作效率,且Xcode也不能自动生成覆盖率报告,并不能与整个开发测试流程结合。
发明内容
本发明要解决的技术问题在于,针对现有技术的不能自动生成覆盖率报告,并不能与整个开发测试流程结合缺陷,提供一种基于lcov来实现增量代码覆盖率的检测方法、装置及设备。
本发明解决其技术问题所采用的技术方案是:构造一种基于lcov来实现增量代码覆盖率的检测方法,包括以下步骤:
S1、通过Xcode工具来配置编译选项,进入到编译进程中,生成应用程序安装包;其中,将生成的应用程序安装包推送给前端进行安装和运行;
S2、将编译过程中生成的“.gcno”文件进行打包压缩后上传到服务端;
S3、基于步骤S1,在应用程序的运行过程中,调用覆盖率分发函数,生成对应的“.gcda”文件,在运行结束后,从应用程序的沙盒中获取最终生成的“.gcda”文件,在对其进行压缩后,上传到服务端;
S4、在服务端对接收到的“.gcno”文件和“.gcda”文件进行整合后,通过lcov工具,基于整合后的文件生成“.info”文件;其中,生成的“.info”文件将上传至Git-开源的分布式版本控制系统;
S5、调用Git diff命令,将步骤S4生成“.info”文件与基线版本的“.info”文件进行比较,得到增量“.info”文件;
S6、通过genhtml工具,基于所述增量“.info”文件生成覆盖率报告;根据所述覆盖率报告,得到增量代码覆盖率的检测结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉极意网络科技有限公司,未经武汉极意网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911125848.6/2.html,转载请声明来源钻瓜专利网。