【技术实现步骤摘要】
数据处理方法、装置、电子设备及存储介质
[0001]本申请涉及计算机
,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
技术介绍
[0002]代码覆盖数据是软件测试中的一种度量,描述程序中源代码被测试的比例和程度。
[0003]相关技术中,需要通过重启服务才能收集代码覆盖数据,具体的,例如基于Gcc(GNU Compiler Collection,GNU编译器集合编译器集合,GNU是一个操作系统)生成代码覆盖数据过程中,需要通过杀掉进程,重启后才能基于gcov(gcov是GCC编译器集合中的一个工具,用于代码覆盖率分析)产生代码覆盖文件,接着,对产生的代码覆盖文件多次合并计算得到具体的行覆盖率数据。但单个测试用例的行覆盖率数据对测试用例萃取场景的作用不大,虽然业界会有利用行覆盖率数据跟代码行号做映射,以此来判断该测试用例的请求处理过程中对代码的覆盖情况,但是这种方法需要记录每个请求覆盖了全部的源代码文件哪些行,计算量较大,存在耗时,操作繁琐复杂的问题;且服务大部分是多进程的,每个请求的子步骤跑的进程可能都不一致,如果服务无法实现优雅退出或者在进程还没完全退出的时候进行重启,就会存在生成的代码覆盖文件信息不完整的情况,导致统计出来的代码覆盖数据会有一部分缺失,影响代码覆盖数据的准确性;且服务频繁重启不仅带来很多不必要的耗时,还会影响服务的稳定性和可用性。
技术实现思路
[0004]本申请提供了一种数据处理方法、装置、设备、存储介质及计算机程序产品,可以有效避免服务重启带来的不必要的耗 ...
【技术保护点】
【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:在接收到针对目标服务的测试请求的情况下,若接收到针对所述目标服务的虚拟服务重启指令,查询所述目标服务对应的预设覆盖场景标签;所述虚拟服务重启指令用于触发代码覆盖路径的生成处理;所述预设覆盖场景标签用于指示所述目标服务具有代码覆盖路径生成的场景需求;在查询到所述预设覆盖场景标签的情况下,获取所述目标服务对应的至少一个第一目标源文件,所述至少一个第一目标源文件为所述目标服务处理所述测试请求过程中需要生成代码覆盖文件的执行程序;生成所述至少一个第一目标源文件对应的至少一个第一代码覆盖文件
;
基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径。2.根据权利要求1所述的方法,其特征在于,所述基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径包括:对所述至少一个第一代码覆盖文件进行解析,得到每个代码覆盖文件对应的至少一个第一覆盖解析文件;生成每个第一覆盖解析文件对应的第一散列数据;基于所述至少一个第一代码覆盖文件对应的第一散列数据和所述至少一个第一目标源文件对应的源文件执行顺序,构建所述目标代码覆盖路径。3.根据权利要求2所述的方法,其特征在于,在生成每个第一覆盖解析文件对应的第一散列数据之前,所述基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径还包括:获取第一噪声信息,所述第一噪声信息用于指示属于噪声文件的覆盖解析文件;基于所述第一噪声信息,对所述至少一个第一代码覆盖文件对应的第一覆盖解析文件进行过滤,得到至少一个第二覆盖解析文件;所述生成每个第一覆盖解析文件对应的第一散列数据包括:生成每个第二覆盖解析文件对应的第二散列数据;所述基于所述至少一个第一代码覆盖文件对应的第一散列数据和所述至少一个第一目标源文件对应的源文件执行顺序,构建所述目标代码覆盖路径包括:基于所述至少一个第二代码覆盖文件对应的第二散列数据和所述源文件执行顺序,构建所述目标代码覆盖路径。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:多次运行所述目标服务;在所述目标服务每次运行过程中,若接收到针对所述目标服务的所述虚拟服务重启指令,查询所述预设覆盖场景标签;在查询到所述预设覆盖场景标签的情况下,获取所述目标服务每次运行过程中的至少一个第二目标源文件;所述至少一个第二目标源文件为所述目标服务每次运行过程中需要生成代码覆盖文件的执行程序;生成每次运行过程中所述至少一个第二目标源文件对应的至少一个第三代码覆盖文件;对每个第三代码覆盖文件进行解析,得到所述每个第三代码覆盖文件对应的第三覆盖
解析文件;基于所述多次运行过程中对应的第三覆盖解析文件间的差异信息,生成所述第一噪声信息。5.根据权利要求4所述的方法,其特征在于,所述基于所述多次运行过程中对应的第三覆盖解析文件间的差异信息,生成所述第一噪声信息包括:对所述多次运行过程中对应的第三覆盖解析文件进行比对,得到第一比对结果;在所述第一比对结果指示所述多次运行过程中对应的第三覆盖解析文件间存在第一差异解析文件的情况下,基于所述第一差异解析文件,生成所述第一噪声信息。6.根据权利要求5所述的方法,其特征在于,所述基于所述多次运行过程中对应的第三覆盖解析文件间的差异信息,生成所述第一噪声信息还包括:在所述第一比对结果指示所述多次运行过程中对应的第三覆盖解析文件间不存在第一差异解析文件的情况下,基于所述多次运行过程中对应的至少一个第三代码覆盖文件,生成多次运行过程中对应的代码覆盖路径;对所述多次运行过程中对应的代码覆盖路径进行比对,得到第二比对结果;在所述第二比对结果指示多次运行过程中对应的代码覆盖路径间存在差异路径节点的情况下,基于所述差异路径节点,生成所述第一噪声信息。7.根据权利要求2所述的方法,其特征在于,在生成每个第一覆盖解析文件对应的第一散列数据之前,所述基于所述至少一个第一代码覆盖文件,生成所述测试请求对应的目标代码覆盖路径还包括:获取第二噪声信息,所述第二噪声信息用于指示覆盖解析文件中存在噪声的行信息;基于所述第二噪声信息,对所述至少一个第一代码覆盖文...
【专利技术属性】
技术研发人员:高文冠,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。