代码覆盖率的确定方法、装置及电子设备制造方法及图纸

技术编号:38334209 阅读:10 留言:0更新日期:2023-08-02 09:14
本发明专利技术公开了一种代码覆盖率的确定方法、装置及电子设备。涉及金融科技领域,该方法包括:获取目标代码文件,并确定目标代码文件匹配的历史代码文件,其中,目标代码文件与历史代码文件为同一代码文件的不同版本;比对目标代码文件和历史代码文件,根据比对结果确定目标代码文件中的变更代码,并获取变更代码在目标代码文件中的行号信息;测试目标代码文件,得到第一代码覆盖率报告;根据变更代码在目标代码文件中的行号信息和第一代码覆盖率报告,确定变更代码的代码覆盖率报告。本发明专利技术解决了现有技术在代码文件发生更新时,依赖人工确定代码覆盖率存在的确定效率低的技术问题。代码覆盖率存在的确定效率低的技术问题。代码覆盖率存在的确定效率低的技术问题。

【技术实现步骤摘要】
代码覆盖率的确定方法、装置及电子设备


[0001]本专利技术涉及金融科技领域,具体而言,涉及一种代码覆盖率的确定方法、装置及电子设备。

技术介绍

[0002]代码覆盖率可以有效反映源代码被测试的比例和程度,帮助开发人员确认重要功能是否已被测试,保障代码质量。目前在代码文件发生更新时,常常进行全量的统计及分析,全量代码覆盖率用于统计整个代码库的整体覆盖情况。且在确定代码覆盖率的过程中,需要开发人员手工修改和配置项目参数,从而具有人工成本高、分析效率低的问题。
[0003]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0004]本专利技术实施例提供了一种代码覆盖率的确定方法、装置及电子设备,以至少解决现有技术在代码文件发生更新时,依赖人工确定代码覆盖率存在的确定效率低的技术问题。
[0005]根据本专利技术实施例的一个方面,提供了一种代码覆盖率的确定方法,包括:获取目标代码文件,并确定目标代码文件匹配的历史代码文件,其中,目标代码文件与历史代码文件为同一代码文件的不同版本;比对目标代码文件和历史代码文件,根据比对结果确定目标代码文件中的变更代码,并获取变更代码在目标代码文件中的行号信息;测试目标代码文件,得到第一代码覆盖率报告;根据变更代码在目标代码文件中的行号信息和第一代码覆盖率报告,确定变更代码的代码覆盖率报告。
[0006]进一步地,代码覆盖率的确定方法还包括:获取监控插件发送的目标文件路径,其中,监控插件用于实时监测多个存储区域存储的代码文件是否发生更新,并在监测到存在代码文件发生更新的目标存储区域的情况下,确定目标存储区域内发生更新的代码文件所在的文件路径,得到目标文件路径;根据目标文件路径从目标存储区域中获取目标代码文件。
[0007]进一步地,代码覆盖率的确定方法还包括:确定在目标代码文件之前存储在目标文件路径中的代码文件,得到多个初始历史代码文件;将多个初始历史代码文件中最近一次存储的初始历史代码文件确定为历史代码文件。
[0008]进一步地,代码覆盖率的确定方法还包括:根据目标文件路径,查找到目标代码文件匹配的配置文件,其中,配置文件用于在存在目标标签的情况下描述依赖代码文件,目标标签表征目标代码文件的运行需要依赖代码文件,依赖代码文件为运行目标代码文件时所依赖的代码文件;在配置文件内存在目标标签的情况下,根据目标文件路径以及目标代码文件的文件标识生成第一目标测试命令,其中,第一目标测试命令用于指示测试代码根据配置文件运行依赖代码文件以及目标代码文件;确定配置文件所在的路径,并将第一目标测试命令加载至配置文件所在的路径中;通过第一目标测试命令运行测试代码以及依赖代
码文件,得到第一代码覆盖率报告,其中,测试代码还用于测试目标代码文件。
[0009]进一步地,代码覆盖率的确定方法还包括:在配置文件内不存在目标标签的情况下,根据目标代码文件的文件标识生成第二目标测试命令;确定配置文件所在的路径,并将第二目标测试命令加载至配置文件所在的路径中;通过第二目标测试命令运行测试代码,得到第一代码覆盖率报告。
[0010]进一步地,目标代码文件中的每行代码中包含至少一个指令,第一代码覆盖率报告中记录有目标代码文件中各行代码的被覆盖指令个数,其中,代码覆盖率的确定方法还包括:对于每行代码,将第一代码覆盖率报告中当前行代码的被覆盖指令个数与预设阈值比对,根据比对结果确定当前行代码的覆盖状态,其中,被覆盖指令个数表征当前行代码中能够被测试到的指令的个数,覆盖状态表征当前行代码是否被覆盖;由每行代码的覆盖状态构成第二代码覆盖率报告;根据变更代码在目标代码文件中的行号信息,从第二代码覆盖率报告中筛选出变更代码匹配的覆盖状态;根据变更代码匹配的覆盖状态以及变更代码的总行数确定变更代码的代码覆盖率;由变更代码匹配的覆盖状态和变更代码的代码覆盖率构成变更代码的代码覆盖率报告。
[0011]进一步地,代码覆盖率的确定方法还包括:在确定变更代码的代码覆盖率报告之后,从变更代码的代码覆盖率报告中获取变更代码的代码覆盖率;在代码覆盖率大于或等于预设阈值的情况下,确定不需要更新测试代码,其中,测试代码还用于测试目标代码文件;在代码覆盖率小于预设阈值的情况下,确定需要更新测试代码。
[0012]根据本专利技术实施例的另一方面,还提供了一种代码覆盖率的确定装置,包括:第一获取模块,用于获取目标代码文件,并确定目标代码文件匹配的历史代码文件,其中,目标代码文件与历史代码文件为同一代码文件的不同版本;比对模块,用于比对目标代码文件和历史代码文件,根据比对结果确定目标代码文件中的变更代码,并获取变更代码在目标代码文件中的行号信息;测试模块,用于测试目标代码文件,得到第一代码覆盖率报告;第一确定模块,用于根据变更代码在目标代码文件中的行号信息和第一代码覆盖率报告,确定变更代码的代码覆盖率报告。
[0013]根据本专利技术实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的代码覆盖率的确定方法。
[0014]根据本专利技术实施例的另一方面,还提供了一种电子设备,电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的代码覆盖率的确定方法。
[0015]在本专利技术实施例中,采用在代码文件发生更新时自动确定代码覆盖率的方式,通过获取目标代码文件,并确定目标代码文件匹配的历史代码文件,然后比对目标代码文件和历史代码文件,根据比对结果确定目标代码文件中的变更代码,并获取变更代码在目标代码文件中的行号信息,接着测试目标代码文件,得到第一代码覆盖率报告,从而根据变更代码在目标代码文件中的行号信息和第一代码覆盖率报告,确定变更代码的代码覆盖率报告。其中,目标代码文件与历史代码文件为同一代码文件的不同版本。
[0016]在上述过程中,通过比对目标代码文件和历史代码文件,得到变更代码的行号信
息,实现了对目标代码文件与历史代码文件之间的差异代码的自动确定。进一步地,由于目标代码文件中的各行代码无法独立运行,因此,通过测试目标代码文件,得到第一代码覆盖率报告,实现了对目标代码文件中各行代码在测试过程中的覆盖情况的有效确定。更进一步地,通过根据变更代码在目标代码文件中的行号信息和第一代码覆盖率报告,确定变更代码的代码覆盖率报告,实现了对目标代码文件与历史代码文件之间的差异代码的覆盖情况的自动确定,从而避免了人工修改和配置项目参数的过程,降低了人工成本,提高了代码覆盖率的确定效率。
[0017]由此可见,本申请所提供的方案达到了在代码文件发生更新时自动确定代码覆盖率的目的,从而实现了提高代码覆盖率的确定效率的技术效果,进而解决了现有技术在代码文件发生更新时,依赖人工确定代码覆盖率存在的确定效率低的技术问题。
附图说明
[0018]此处所说明的附图用来提供对本专利技术的进一步理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码覆盖率的确定方法,其特征在于,包括:获取目标代码文件,并确定所述目标代码文件匹配的历史代码文件,其中,所述目标代码文件与所述历史代码文件为同一代码文件的不同版本;比对所述目标代码文件和所述历史代码文件,根据比对结果确定所述目标代码文件中的变更代码,并获取所述变更代码在所述目标代码文件中的行号信息;测试所述目标代码文件,得到第一代码覆盖率报告;根据所述变更代码在所述目标代码文件中的行号信息和所述第一代码覆盖率报告,确定所述变更代码的代码覆盖率报告。2.根据权利要求1所述的方法,其特征在于,获取目标代码文件,包括:获取监控插件发送的目标文件路径,其中,所述监控插件用于实时监测多个存储区域存储的代码文件是否发生更新,并在监测到存在代码文件发生更新的目标存储区域的情况下,确定所述目标存储区域内发生更新的代码文件所在的文件路径,得到所述目标文件路径;根据所述目标文件路径从所述目标存储区域中获取所述目标代码文件。3.根据权利要求2所述的方法,其特征在于,确定所述目标代码文件匹配的历史代码文件,包括:确定在所述目标代码文件之前存储在所述目标文件路径中的代码文件,得到多个初始历史代码文件;将所述多个初始历史代码文件中最近一次存储的初始历史代码文件确定为所述历史代码文件。4.根据权利要求2所述的方法,其特征在于,测试所述目标代码文件,得到第一代码覆盖率报告,包括:根据所述目标文件路径,查找到所述目标代码文件匹配的配置文件,其中,所述配置文件用于在存在目标标签的情况下描述依赖代码文件,所述目标标签表征所述目标代码文件的运行需要所述依赖代码文件,所述依赖代码文件为运行所述目标代码文件时所依赖的代码文件;在所述配置文件内存在所述目标标签的情况下,根据所述目标文件路径以及所述目标代码文件的文件标识生成第一目标测试命令,其中,所述第一目标测试命令用于指示测试代码根据所述配置文件运行所述依赖代码文件以及所述目标代码文件;确定所述配置文件所在的路径,并将所述第一目标测试命令加载至所述配置文件所在的路径中;通过所述第一目标测试命令运行所述测试代码,得到所述第一代码覆盖率报告,其中,所述测试代码还用于测试所述目标代码文件。5.根据权利要求4所述的方法,其特征在于,在查找到所述目标代码文件匹配的配置文件之后,所述方法还包括:在所述配置文件内不存在所述目标标签的情况下,根据所述目标代码文件的文件标识生成第二目标测试命令;确定所述配置文件所在的路径,并将所述第二目标测试命令加载至所述配置文件所在的路径中;
通过所述第二目标测试命令运行所述测试代码,得到所述第一代码覆...

【专利技术属性】
技术研发人员:黄群李逸帆张冰宇朱凯莉
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1