测试系统代码的方法、装置、电子设备及存储介质制造方法及图纸

技术编号:33040682 阅读:23 留言:0更新日期:2022-04-15 09:21
本公开提供了一种测试系统代码的方法、装置、电子设备及存储介质,涉及计算机技术领域,以至少解决了现有技术中由于缺乏代码变更影响范围的精准自动分析方法导致分析成本高、分析结果准确度低的技术问题。具体实现方案为:基于目标代码获取第一索引数据和第二索引数据,其中,目标代码为全量的系统代码,第一索引数据为全量的类索引,第二索引数据为全量的函数索引;利用目标代码与第二索引数据生成目标调用链,其中,目标调用链为全量的函数调用链;通过第一索引数据、目标代码的变更信息以及目标调用链,获取变更信息对应的目标类集合;根据目标类集合进行代码测试。据目标类集合进行代码测试。据目标类集合进行代码测试。

【技术实现步骤摘要】
测试系统代码的方法、装置、电子设备及存储介质


[0001]本公开涉及计算机
,尤其涉及测试系统代码的方法、装置、电子设备及存储介质。

技术介绍

[0002]在软件开发的过程中,经常需要进行代码的变更,然而,代码变更会产生一系列影响。比如,一行代码变更直接影响当前函数,函数变更直接影响该函数的调用方,进而影响类变量和相关的用户入口。由于系统全量代码中存在大量复杂的函数调用关系,且类变量的变化对用户入口的影响可能会被隐藏,因此,部分代码变更的影响范围难以确定。对此,本领域的技术人员在软件测试时不断探求各种自动确定代码变更影响范围的方法。
[0003]相关方案中,代码变更影响范围的确定方法主要有如下三种:
[0004](1)通过建立功能关键字与入口代码类的映射,根据该映射和入口代码类的调用链路,可以定位与功能关键字匹配的代码受影响范围。这种方法的缺陷在于:依赖功能关键字的查找和代码规范性,且无法确定完整的影响范围。
[0005](2)通过代码库中预先配置的方法和功能点的对应关系,对比变更前后的差异代码,自动分析影响范围。本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种测试系统代码的方法,包括:基于目标代码获取第一索引数据和第二索引数据,其中,所述目标代码为全量的系统代码,所述第一索引数据为全量的类索引,所述第二索引数据为全量的函数索引;利用所述目标代码与所述第二索引数据生成目标调用链,其中,所述目标调用链为全量的函数调用链;通过所述第一索引数据、所述目标代码的变更信息以及所述目标调用链,获取所述变更信息对应的目标类集合;根据所述目标类集合进行代码测试。2.根据权利要求1所述的方法,其中,基于所述目标代码获取所述第一索引数据和所述第二索引数据包括:对所述目标代码的语法树进行访问和遍历,获取所述第一索引数据和所述第二索引数据。3.根据权利要求1所述的方法,其中,所述方法还包括:在对所述目标代码执行提交操作的过程中,利用预设版本库对应的差异指令,比较第一存储区域中存储的代码内容与第二存储区域存储的代码内容之间的差异,得到所述变更信息,其中,所述第一存储区域为所述预设版本库对应的暂存区,所述第二存储区域为所述预设版本库对应的工作区。4.根据权利要求1所述的方法,其中,通过所述第一索引数据、所述变更信息以及所述目标调用链,获取所述目标类集合包括:通过所述变更信息获取第一函数集合;采用所述目标调用链与所述第一函数集合确定初始类集合;根据所述第一索引数据和所述初始类集合,获取所述目标类集合。5.根据权利要求4所述的方法,其中,通过所述变更信息获取所述第一函数集合包括:获取所述变更信息归属的函数信息,得到所述第一函数集合。6.根据权利要求4所述的方法,其中,采用所述目标调用链与所述第一函数集合确定所述初始类集合包括:从所述目标调用链中,获取所述第一函数集合中每个函数的调用链结果,其中,所述调用链结果用于描述对所述第一函数集合中每个函数进行直接或间接调用的全部函数的调用关系;基于所述调用链结果,获取第二函数集合,其中,所述第二函数集合是与所述第一函数集合中每个函数具有直接调用关系的函数集合;通过所述第二函数集合中每个函数归属的类,确定所述初始类集合。7.根据权利要求4所述的方法,其中,根据所述第一索引数据和所述初始类集合,获取所述目标类集合包括:选取步骤,从所述初始类集合中选取目标类元素;判断步骤,判断所述目标类元素通过目标类索引元素查找到的当前类与所述目标类索引元素之间是否满足第一预设条件,其中,所述目标类索引元素为所述第一索引数据中包含的任一类索引元素;获取步骤,响应于所述当前类与所述目标类索引元素之间满足所述第一预设条件,将
所述当前类添加至所述初始类集合,并返回所述选取步骤,直至满足第二预设条件,得到所述目标类集合。8.根据权利要求7所述的方法,其中,所述第一预设条件包括以下之一:所述当前类属于所述目标类索引元素的父类;所述当前类属于所述目标类索引元素的实现接口;所述当前类属于所述目标类索引元素的类变量中任一变量对应的变量类型。9.根据权利要求7所述的方法,其中,所述第二预设条件包括:所述初始类集合中包含的类元素数量停止发生变化,并且所述初始类集合中包含的全部类元素均处理完毕。10.一种测试系统代码的装置,包括:第一获取模块,用于基于目标代码获取第一索引数据和第二索引数据,其中,所述目标代码为全量的系统代码,所述第一索引数据为全量的类索引,所述第二索引数据为全量的函数索引;生成模块,用于利用所述目标代码与所述第二索引数据生成目标调用...

【专利技术属性】
技术研发人员:康伟伟
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1