一种有效快速提升增量代码覆盖率的方法与流程

文档序号:33329396发布日期:2023-03-04 00:07阅读:245来源:国知局
一种有效快速提升增量代码覆盖率的方法与流程

1.本发明涉及it系统开发技术领域,具体为一种有效快速提升增量代码覆盖率的方法。


背景技术:

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


技术实现要素:

4.本发明的目的在于提供一种有效快速提升增量代码覆盖率的方法,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:一种有效快速提升增量代码覆盖率的方法,包括以下步骤:
6.s1:随着应用启动,改造后的agent开始工作,agent实时收集应用的代码覆盖信息,同时agent开放服务访问端口,使远端的分析服务获取覆盖率原始数据信息;
7.s2:当用户通过平台点击进行分析时,通过用例平台允许测试人员随时向agent发起要求,将命令下达到相应应用agent上,基于当前收集到的数据生成覆盖率报告的指令“exec文件”;
8.s3:分析模块拉取待测应用的exec数据,并通过git获取项目源码并进行编译;
9.s4:通过git diff获取基线跟对比commitid的差异,过滤出有效的java文件,有效的变动行;
10.s5:根据上一步结果,读取本地应用源码.java文件内容,进行抽象语法树解析,过滤出相关的增量方法;
11.s6:解析待测应用的exec文件转换为具体的java对象,测试人员拿到“exec文件”后进行内部解析,渲染出实时的覆盖率报告;
12.s7:然后根据源码、编译后的类文件,git diff结合抽象语法树过滤出来的增量信息,exec文件转换后的具体覆盖率详情,进行全量跟增量的覆盖率分析,并生成覆盖率报告,测试人员在视觉上直观的了解到覆盖率的情况,及时根据覆盖率报告中的未覆盖行有针对性的补充手工用例并执行,此操作反复执行。
13.优选的,s1中的应用随着agent一起部署,监听伴随着应用整个生命周期,直至应用停止。
14.优选的,s2中的“exec文件”其中包含的信息时间范围是,自应用启动开始直至命令下达要求生成exec数据文件为止。
15.优选的,s6中的覆盖率报告中,“未覆盖、已覆盖代码”分别用不同的颜色进行染色。
16.优选的,不同颜色分为红色与绿色。
17.优选的,红色表示分析状态为:失败、有全量覆盖率也可以点击查看详情与失败、没有全量覆盖率、增量分概率、不能点击查看详情。
18.优选的,绿色表示分析状态为:已完成,可以点击查看详情。
19.优选的,s7中反复执行的结果为:达到高代码覆盖率。
20.与现有技术相比,本发明的有益效果是:
21.1、应用随着agent一起部署,监听伴随着应用整个生命周期,直至应用停止。agent会实时收集应用的代码覆盖信息,同时agent开放服务端口,方便远端服务进行调用。在此基础上,通过用例平台允许测试人员随时向agent发起要求,基于当前收集到的数据生成覆盖率报告的指令“exec文件”(代码覆盖详情的原始文件)。测试人员拿到“exec文件”后进行内部解析,渲染出实时的覆盖率报告,“未覆盖、已覆盖代码”分别用不同的颜色进行染色。测试人员在视觉上可以直观的了解到覆盖率的情况,可及时根据覆盖率报告中的未覆盖行有针对性的补充手工用例并执行。此操作可以反复执行,直至最终达到高代码覆盖率的目的。这一功能便于测试人员可以快速有效的了解到覆盖率情况并及时调整,同时大大提升了工作效率;
22.2、为了让测试人员能够比较直观地看出当前迭代的测试工作都覆盖了哪些功能点,又有哪些功能点被遗漏掉。技术人员针对以上问题对测试用例平台进行升级,升级后测试人员可通过对代码的覆盖率进行统计,能够比较直观地看出哪些代码在测试的时候有被覆盖到,又有哪些代码被遗漏。测试人员可及时根据覆盖率报告中未覆盖行,有针对性的补充手工用例并执行,最终达到高代码覆盖率的效果。这一功能大大提高测试人员的工作效率。
23.当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
24.为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1为本发明的覆盖率分析流程图。
具体实施方式
26.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
27.实施例1
28.请参阅图1,本发明提供一种有效快速提升增量代码覆盖率的方法技术方案:一种
有效快速提升增量代码覆盖率的方法,包括以下步骤:
29.s1:随着应用启动,改造后的agent开始工作,不断收集代码覆盖信息,同时agent开放服务访问端口,方便远端的分析服务获取覆盖率原始数据信息,应用随着agent一起部署,监听伴随着应用整个生命周期,直至应用停止,agent会实时收集应用的代码覆盖信息,方便远端服务进行调用。
30.s2:当用户通过平台点击进行分析时,通过用例平台允许测试人员随时向agent发起要求,将命令下达到相应应用agent上,基于当前收集到的数据生成覆盖率报告的指令“exec文件”(代码覆盖详情的原始文件),其中包含的信息时间范围是,自应用启动开始直至命令下达要求生成exec数据文件为止。
31.s3:分析模块拉取待测应用的exec(覆盖率探针)数据,并通过git获取项目源码并进行编译。
32.s4:通过git diff获取基线跟对比commitid的差异,过滤出有效的java文件,有效的变动行。
33.s5:根据上一步结果,读取本地应用源码.java文件内容,进行抽象语法树解析,过滤出相关的增量方法。
34.s6:测试人员拿到“exec文件”后进行内部解析,渲染出实时的覆盖率报告,“未覆盖、已覆盖代码”分别用不同的颜色进行染色,解析待测应用的exec文件转换为具体的java对象,不同颜色分为红色与绿色,红色表示分析状态为:失败、有全量覆盖率也可以点击查看详情与失败、没有全量覆盖率、增量分概率、不能点击查看详情,绿色表示分析状态为:已完成,可以点击查看详情。
35.s7:然后根据源码、编译后的类文件,git diff结合抽象语法树过滤出来的增量信息,exec文件转换后的具体覆盖率详情,进行全量跟增量的覆盖率分析,并生成覆盖率报告,测试人员在视觉上可以直观的了解到覆盖率的情况,可及时根据覆盖率报告中的未覆盖行有针对性的补充手工用例并执行。此操作可以反复执行,直至最终达到高代码覆盖率的目的。
36.本实施例的一个具体应用为:应用随着agent一起部署,监听伴随着应用整个生命周期,直至应用停止。agent会实时收集应用的代码覆盖信息,同时agent开放服务端口,方便远端服务进行调用。在此基础上,通过用例平台允许测试人员随时向agent发起要求,基于当前收集到的数据生成覆盖率报告的指令“exec文件”(代码覆盖详情的原始文件)。测试人员拿到“exec文件”后进行内部解析,渲染出实时的覆盖率报告,“未覆盖、已覆盖代码”分别用不同的颜色进行染色。测试人员在视觉上可以直观的了解到覆盖率的情况,可及时根据覆盖率报告中的未覆盖行有针对性的补充手工用例并执行。此操作可以反复执行,直至最终达到高代码覆盖率的目的。这一功能便于测试人员可以快速有效的了解到覆盖率情况并及时调整,同时大大提升了工作效率,为了让测试人员能够比较直观地看出当前迭代的测试工作都覆盖了哪些功能点,又有哪些功能点被遗漏掉。技术人员针对以上问题对测试用例平台进行升级,升级后测试人员可通过对代码的覆盖率进行统计,能够比较直观地看出哪些代码在测试的时候有被覆盖到,又有哪些代码被遗漏。测试人员可及时根据覆盖率报告中未覆盖行,有针对性的补充手工用例并执行,最终达到高代码覆盖率的效果。这一功能大大提高测试人员的工作效率。
37.在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
38.以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1