代码增量覆盖信息的展示方法及其装置制造方法及图纸

技术编号:39731052 阅读:12 留言:0更新日期:2023-12-17 23:34
本发明专利技术公开了一种代码增量覆盖信息的展示方法及其装置

【技术实现步骤摘要】
代码增量覆盖信息的展示方法及其装置、电子设备


[0001]本专利技术涉及金融科技领域或其他相关领域,具体而言,涉及一种代码增量覆盖信息的展示方法及其装置

电子设备


技术介绍

[0002]当前,在
JAVA
的项目开源代码测试方面,需要测试代码覆盖率,测试覆盖率尤其是增量代码的测试覆盖率采集是衡量测试效果,保证项目质量的重要手段

[0003]相关技术中,在测试新开发代码,得到代码覆盖率时,主要通过
jacoco(
面向
JAVA
的开源代码覆盖率统计
)
进行测试覆盖率的统计

但是这种测试方式,只能针对项目开源代码中的某一封装类进行增量覆盖率统计,在进行代码增量覆盖率测试时,精确度较低,缺乏精确到具体代码行的增量测试覆盖率统计手段

[0004]针对上述的问题,目前尚未提出有效的解决方案


技术实现思路

[0005]本专利技术实施例提供了一种代码增量覆盖信息的展示方法及其装置

电子设备,以至少解决相关技术中在进行代码增量覆盖率测试时,精确度较低的技术问题

[0006]根据本专利技术实施例的一个方面,提供了一种代码增量覆盖信息的展示方法,包括:获取软件测试环境中的代码覆盖信息,其中,所述代码覆盖信息至少包括:代码测试覆盖率

目标程序的
N
个封装类

包含所述封装类的类文件的哈希值,
N
为正整数;对于每个所述封装类,比较最新采集的类文件的哈希值与历史过程采集的类文件的哈希值,得到比较结果;在所述比较结果指示哈希值不一致的情况下,生成版本号计算指令;响应所述版本号计算指令,获取与所述类文件匹配的最新
git
文件以及与所述最新
git
文件对应的新版本标签,基于所述新版本标签定义所述目标程序的新版本号;基于所述目标程序的新版本号更新所述代码覆盖信息,得到所述目标程序的代码增量覆盖信息,并展示所述代码增量覆盖信息,其中,所述代码增量覆盖信息包括:截止测试时间点在所述软件测试环境部署的最新
git
文件以及所述最新
git
文件相对于历史版本的
git
文件的代码增量信息

[0007]可选地,所述代码覆盖信息是预先采集的,在采集所述代码覆盖信息时,包括:在目标程序各版本的程序代码提交至所述软件测试环境后,在所述软件测试环境中采集所述目标程序各版本已测试的程序代码的代码行,得到测试覆盖行明细;获取所述软件测试环境的
IP
地址以及测试端口;获取所述目标程序的
N
个封装类以及包含所述封装类的类文件的哈希值;基于所述测试覆盖行明细

所述软件测试环境的
IP
地址以及测试端口

类文件的哈希值,得到所述代码覆盖信息

[0008]可选地,获取与所述类文件匹配的最新
git
文件以及与所述最新
git
文件对应的新版本标签的步骤,包括:调取代码覆盖率报表,查询所述代码覆盖率报表中与所述类文件匹配的最新
git
文件;在查询到所述最新
git
文件的情况下,获取所述最新
git
文件的文件信息

当前发布分支

程序执行时间点;在所述当前发布分支下,基于所述文件信息查询所述
最新
git
文件在所述程序执行时间点之前已产生的最新版本标签,将该所述最新版本标签定义为所述最新
git
文件对应的新版本标签

[0009]可选地,在查询所述最新
git
文件在所述程序执行时间点之前已产生的最新版本标签之前,还包括:在接收到所述最新
git
文件的情况下,获取所述最新
git
文件进行首次安装时产生的
git
标签;将所述首次安装时产生的
git
标签标记为所述目标程序的最新版本标签

[0010]可选地,还包括:获取
git
版本库中存储的全量文件清单以及文件提交记录,其中,所述全量文件清单包括:所述目标程序在不同版本的
git
文件对应的文件标识,所述文件提交记录包含将所述目标程序在不同版本的程序代码提交至所述软件测试环境的提交时间以及提交次数;基于所述全量文件清单以及所述文件提交记录,生成所述
git
版本库的文件记录

[0011]可选地,所述代码覆盖率报表是预先生成的,在生成所述代码覆盖率报表时,包括:读取所述代码覆盖信息,得到关联所述目标程序的测试覆盖行明细

所属应用

环境节点;基于所述
git
版本库的文件记录,建立所述目标程序的所属应用

环境节点与所述
git
版本库之间的关联关系;对于所述代码覆盖信息的每个所述封装类,按照所述目标程序的所属应用

环境节点匹配所述
git
版本库中的
git
文件,得到包含所述封装类的类文件与所述
git
文件之间的映射关系;基于所述映射关系,计算所述测试覆盖行明细与所述目标程序总代码行的比值,得到代码测试覆盖率;对所述目标程序各版本已测试的程序代码的代码行进行标识;基于所述代码测试覆盖率以及标识后的目标程序的程序代码,生成所述代码覆盖率报表

[0012]可选地,基于所述目标程序的新版本号更新所述代码覆盖信息,得到所述目标程序的代码增量覆盖信息的步骤,包括:在获取到所述目标程序的新版本号的情况下,获取在所述软件测试环境进行代码测试的测试时间点;获取截止所述测试时间点在所述软件测试环境部署的最新
git
文件;获取所述最新
git
文件相对于历史版本的
git
文件发生修改的修改代码行,得到修改代码行明细,并对修改代码行进行标识;基于所述修改代码行明细以及所述测试覆盖行明细,计算代码增量覆盖率数值;基于标识后的所述修改代码行以及所述代码增量覆盖率数值,得到代码增量信息;基于所述代码增量信息以及所述代码覆盖率报表确定所述目标程序的代码增量覆盖信息

[0013]根据本专利技术实施例的另一方面,还提供了一种代码增量覆盖信息的展示装置,包括:获取单元,用于获取软件测试环境中的代码覆盖信息,其中,所述代码覆盖信息至少包括:代码测试覆盖率

目标程序的
N
个封装类

包含所述封装类的类文件的哈希值,
N
为正整数;比较单元,用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种代码增量覆盖信息的展示方法,其特征在于,包括:获取软件测试环境中的代码覆盖信息,其中,所述代码覆盖信息至少包括:代码测试覆盖率

目标程序的
N
个封装类

包含所述封装类的类文件的哈希值,
N
为正整数;对于每个所述封装类,比较最新采集的类文件的哈希值与历史过程采集的类文件的哈希值,得到比较结果;在所述比较结果指示哈希值不一致的情况下,生成版本号计算指令;响应所述版本号计算指令,获取与所述类文件匹配的最新
git
文件以及与所述最新
git
文件对应的新版本标签,基于所述新版本标签定义所述目标程序的新版本号;基于所述目标程序的新版本号更新所述代码覆盖信息,得到所述目标程序的代码增量覆盖信息,并展示所述代码增量覆盖信息,其中,所述代码增量覆盖信息包括:截止测试时间点在所述软件测试环境部署的最新
git
文件以及所述最新
git
文件相对于历史版本的
git
文件的代码增量信息
。2.
根据权利要求1所述的展示方法,其特征在于,所述代码覆盖信息是预先采集的,在采集所述代码覆盖信息时,包括:在目标程序各版本的程序代码提交至所述软件测试环境后,在所述软件测试环境中采集所述目标程序各版本已测试的程序代码的代码行,得到测试覆盖行明细;获取所述软件测试环境的
IP
地址以及测试端口;获取所述目标程序的
N
个封装类以及包含所述封装类的类文件的哈希值;基于所述测试覆盖行明细

所述软件测试环境的
IP
地址以及测试端口

类文件的哈希值,得到所述代码覆盖信息
。3.
根据权利要求1所述的展示方法,其特征在于,获取与所述类文件匹配的最新
git
文件以及与所述最新
git
文件对应的新版本标签的步骤,包括:调取代码覆盖率报表,查询所述代码覆盖率报表中与所述类文件匹配的最新
git
文件;在查询到所述最新
git
文件的情况下,获取所述最新
git
文件的文件信息

当前发布分支和程序执行时间点;在所述当前发布分支下,基于所述文件信息查询所述最新
git
文件在所述程序执行时间点之前已产生的最新版本标签,将该最新版本标签定义为所述最新
git
文件对应的新版本标签
。4.
根据权利要求3所述的展示方法,其特征在于,在查询所述最新
git
文件在所述程序执行时间点之前已产生的最新版本标签之前,还包括:在接收到所述最新
git
文件的情况下,获取所述最新
git
文件进行首次安装时产生的
git
标签;将所述首次安装时产生的
git
标签标记为所述目标程序的最新版本标签
。5.
根据权利要求3所述的展示方法,其特征在于,还包括:获取
git
版本库中存储的全量文件清单以及文件提交记录,其中,所述全量文件清单包括:所述目标程序在不同版本的
git
文件对应的文件标识,所述文件提交记录包含将所述目标程序在不同版本的程序代码提交至所述软件测试环境的提交时间以及提交次数;基于所述全量文件清单以及所述文件提交记录,生成所述
git
版本库的文件记录
。6.
...

【专利技术属性】
技术研发人员:李成
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1