一种有效快速提升增量代码覆盖率的方法技术

技术编号:36755255 阅读:14 留言:0更新日期:2023-03-04 10:45
本发明专利技术公开了IT系统开发技术领域的一种有效快速提升增量代码覆盖率的方法,包括以下步骤:S1:随着应用启动,改造后的agent开始工作,agent实时收集应用的代码覆盖信息,同时agent开放服务访问端口,使远端的分析服务获取覆盖率原始数据信息;S2:当用户通过平台点击进行分析时,通过用例平台允许测试人员随时向agent发起要求,将命令下达到相应应用agent上,基于当前收集到的数据生成覆盖率报告的指令“exec文件”;S3:分析模块拉取待测应用的exec数据,并通过git获取项目源码并进行编译,测试人员可及时根据覆盖率报告中未覆盖行,有针对性的补充手工用例并执行,最终达到高代码覆盖率的效果。提高测试人员的工作效率。提高测试人员的工作效率。提高测试人员的工作效率。

【技术实现步骤摘要】
一种有效快速提升增量代码覆盖率的方法


[0001]本专利技术涉及IT系统开发
,具体为一种有效快速提升增量代码覆盖率的方法。

技术介绍

[0002]原始的用例平台代码覆盖率需要测试人员完成测试工作后,才可以查看到覆盖率的情况并进行调整。为了达到高代码覆盖率的目的。测试人员需要反复测试,反复查看覆盖率情况并进行调整。这样反复测试浪费大量时间和人力。
[0003]基于此,本专利技术设计了一种有效快速提升增量代码覆盖率的方法以解决上述问题。

技术实现思路

[0004]本专利技术的目的在于提供一种有效快速提升增量代码覆盖率的方法,以解决上述
技术介绍
中提出的问题。
[0005]为实现上述目的,本专利技术提供如下技术方案:一种有效快速提升增量代码覆盖率的方法,包括以下步骤:
[0006]S1:随着应用启动,改造后的agent开始工作,agent实时收集应用的代码覆盖信息,同时agent开放服务访问端口,使远端的分析服务获取覆盖率原始数据信息;
[0007]S2:当用户通过平台点击进行分析时,通过用例平台允许测试人员随时向agent发起要求,将命令下达到相应应用agent上,基于当前收集到的数据生成覆盖率报告的指令“exec文件”;
[0008]S3:分析模块拉取待测应用的exec数据,并通过git获取项目源码并进行编译;
[0009]S4:通过git diff获取基线跟对比commitId的差异,过滤出有效的java文件,有效的变动行;
[0010]S5:根据上一步结果,读取本地应用源码.java文件内容,进行抽象语法树解析,过滤出相关的增量方法;
[0011]S6:解析待测应用的exec文件转换为具体的java对象,测试人员拿到“exec文件”后进行内部解析,渲染出实时的覆盖率报告;
[0012]S7:然后根据源码、编译后的类文件,git diff结合抽象语法树过滤出来的增量信息,exec文件转换后的具体覆盖率详情,进行全量跟增量的覆盖率分析,并生成覆盖率报告,测试人员在视觉上直观的了解到覆盖率的情况,及时根据覆盖率报告中的未覆盖行有针对性的补充手工用例并执行,此操作反复执行。
[0013]优选的,S1中的应用随着agent一起部署,监听伴随着应用整个生命周期,直至应用停止。
[0014]优选的,S2中的“exec文件”其中包含的信息时间范围是,自应用启动开始直至命令下达要求生成exec数据文件为止。
[0015]优选的,S6中的覆盖率报告中,“未覆盖、已覆盖代码”分别用不同的颜色进行染色。
[0016]优选的,不同颜色分为红色与绿色。
[0017]优选的,红色表示分析状态为:失败、有全量覆盖率也可以点击查看详情与失败、没有全量覆盖率、增量分概率、不能点击查看详情。
[0018]优选的,绿色表示分析状态为:已完成,可以点击查看详情。
[0019]优选的,S7中反复执行的结果为:达到高代码覆盖率。
[0020]与现有技术相比,本专利技术的有益效果是:
[0021]1、应用随着agent一起部署,监听伴随着应用整个生命周期,直至应用停止。agent会实时收集应用的代码覆盖信息,同时agent开放服务端口,方便远端服务进行调用。在此基础上,通过用例平台允许测试人员随时向agent发起要求,基于当前收集到的数据生成覆盖率报告的指令“exec文件”(代码覆盖详情的原始文件)。测试人员拿到“exec文件”后进行内部解析,渲染出实时的覆盖率报告,“未覆盖、已覆盖代码”分别用不同的颜色进行染色。测试人员在视觉上可以直观的了解到覆盖率的情况,可及时根据覆盖率报告中的未覆盖行有针对性的补充手工用例并执行。此操作可以反复执行,直至最终达到高代码覆盖率的目的。这一功能便于测试人员可以快速有效的了解到覆盖率情况并及时调整,同时大大提升了工作效率;
[0022]2、为了让测试人员能够比较直观地看出当前迭代的测试工作都覆盖了哪些功能点,又有哪些功能点被遗漏掉。技术人员针对以上问题对测试用例平台进行升级,升级后测试人员可通过对代码的覆盖率进行统计,能够比较直观地看出哪些代码在测试的时候有被覆盖到,又有哪些代码被遗漏。测试人员可及时根据覆盖率报告中未覆盖行,有针对性的补充手工用例并执行,最终达到高代码覆盖率的效果。这一功能大大提高测试人员的工作效率。
[0023]当然,实施本专利技术的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
[0024]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1为本专利技术的覆盖率分析流程图。
具体实施方式
[0026]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0027]实施例1
[0028]请参阅图1,本专利技术提供一种有效快速提升增量代码覆盖率的方法技术方案:一种
有效快速提升增量代码覆盖率的方法,包括以下步骤:
[0029]S1:随着应用启动,改造后的agent开始工作,不断收集代码覆盖信息,同时agent开放服务访问端口,方便远端的分析服务获取覆盖率原始数据信息,应用随着agent一起部署,监听伴随着应用整个生命周期,直至应用停止,agent会实时收集应用的代码覆盖信息,方便远端服务进行调用。
[0030]S2:当用户通过平台点击进行分析时,通过用例平台允许测试人员随时向agent发起要求,将命令下达到相应应用agent上,基于当前收集到的数据生成覆盖率报告的指令“exec文件”(代码覆盖详情的原始文件),其中包含的信息时间范围是,自应用启动开始直至命令下达要求生成exec数据文件为止。
[0031]S3:分析模块拉取待测应用的exec(覆盖率探针)数据,并通过git获取项目源码并进行编译。
[0032]S4:通过git diff获取基线跟对比commitId的差异,过滤出有效的java文件,有效的变动行。
[0033]S5:根据上一步结果,读取本地应用源码.java文件内容,进行抽象语法树解析,过滤出相关的增量方法。
[0034]S6:测试人员拿到“exec文件”后进行内部解析,渲染出实时的覆盖率报告,“未覆盖、已覆盖代码”分别用不同的颜色进行染色,解析待测应用的exec文件转换为具体的java对象,不同颜色分为红色与绿色,红色表示分析状态为:失败、有全量覆盖率也可以点击查看详情与失败、没有全量覆盖率、增量分概率、不能点击查看详情,绿色表示分析状态为:已完成,可以点击本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种有效快速提升增量代码覆盖率的方法,其特征在于,包括以下步骤:S1:随着应用启动,改造后的agent开始工作,agent实时收集应用的代码覆盖信息,同时agent开放服务访问端口,使远端的分析服务获取覆盖率原始数据信息;S2:当用户通过平台点击进行分析时,通过用例平台允许测试人员随时向agent发起要求,将命令下达到相应应用agent上,基于当前收集到的数据生成覆盖率报告的指令“exec文件”;S3:分析模块拉取待测应用的exec数据,并通过git获取项目源码并进行编译;S4:通过git diff获取基线跟对比commitId的差异,过滤出有效的java文件,有效的变动行;S5:根据上一步结果,读取本地应用源码.java文件内容,进行抽象语法树解析,过滤出相关的增量方法;S6:解析待测应用的exec文件转换为具体的java对象,测试人员拿到“exec文件”后进行内部解析,渲染出实时的覆盖率报告;S7:然后根据源码、编译后的类文件,git diff结合抽象语法树过滤出来的增量信息,exec文件转换后的具体覆盖率详情,进行全量跟增量的覆盖率分析,并生成覆盖率报告,测试人员在视觉上直观的了解到覆盖率的情况,及时根据覆盖率报告中的未覆盖行有针对性的补充...

【专利技术属性】
技术研发人员:曹镇张彬彬
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

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

1