一种代码变更的影响分析方法、装置、存储介质及设备制造方法及图纸

技术编号:38324913 阅读:12 留言:0更新日期:2023-07-29 09:07
本申请提供一种代码变更的影响分析方法、装置、存储介质及设备,该方法中,从项目源码中提取出记录数据访问层类名称的数据访问层文件,以及记录对外接口层类名称的程序接口文件,再根据数据访问层文件,获取数据访问层函数并保存到数据访问层函数列表中,同时根据程序接口文件,获取对外接口函数中调用的相关函数并保存到对外接口信息列表中,通过比对这两个列表,确定各数据访问层函数的影响接口。这样,通过追溯函数的调用关系,精确定位到数据访问层的修改对对外接口的影响范围,使得研发人员可以重点回归测试相关接口,从而缩小回归测试范围,降低时间成本,提升研发速度。提升研发速度。提升研发速度。

【技术实现步骤摘要】
一种代码变更的影响分析方法、装置、存储介质及设备


[0001]本申请涉及代码开发
,具体而言,涉及一种代码变更的影响分析方法、装置、存储介质及设备。

技术介绍

[0002]去Oracle化,实际上就是去集中式数据库架构,金融行业中,去Oracle化就是将数据从当前的Oracle数据库迁移到具有体积小、速度快、高可移植性等优点的MySQL数据库。数据库的替换,对于历史数据可以通过数据迁移的方式进行,但不同的底层数据库对于程序在数据访问层会有不同的操作逻辑,需要修改相应的代码进行适配。而在修改程序数据访问层代码的过程中,由于金融数据的敏感性以及缺乏对程序业务功能范围的评估,常常是修改一处数据访问层代码,就需要对整个程序业务功能进行回归测试。这一方式容易浪费大量的时间以及测试资源,影响研发进度。

技术实现思路

[0003]本申请的目的在于提供一种代码变更的影响分析方法、装置、存储介质及设备,旨在解决相关技术中存在的修改程序数据访问层代码时容易浪费大量的时间以及测试资源,影响研发进度的问题。
[0004]第一方面,本申请提供的一种代码变更的影响分析方法,包括:获取项目源码,从所述项目源码中提取出数据访问层文件和程序接口文件;其中,所述数据访问层文件是记录数据访问层类名称的文件;所述程序接口文件是记录对外接口层类名称的文件;根据所述数据访问层文件,获取数据访问层函数并保存到数据访问层函数列表中,根据所述程序接口文件,获取对外接口函数中调用的相关函数并保存到对外接口信息列表中;所述数据访问层函数是所述数据访问层类下的函数;所述对外接口函数是所述对外接口层类下的函数;比对所述数据访问层函数列表和所述对外接口信息列表,根据比对结果确定各数据访问层函数的影响接口。
[0005]在上述实现过程中,从项目源码中提取出记录数据访问层类名称的数据访问层文件,以及记录对外接口层类名称的程序接口文件,再根据数据访问层文件,获取数据访问层函数并保存到数据访问层函数列表中,同时根据程序接口文件,获取对外接口函数中调用的相关函数并保存到对外接口信息列表中,通过比对这两个列表,确定各数据访问层函数的影响接口。这样,通过追溯函数的调用关系,精确定位到数据访问层的修改对对外接口的影响范围,使得研发人员可以重点回归测试相关接口,从而缩小回归测试范围,降低时间成本,提升研发速度。
[0006]进一步地,在一些实施例中,所述从所述项目源码中提取出数据访问层文件和程序接口文件,包括:
查找所述项目源码中的Java文件,基于查找到的Java文件生成Java文件列表;将所述Java文件列表中的文件名称统一转换成小写形式后,查询文件名称以dto结尾的文件作为数据访问层文件,查询文件名称以controller结尾的文件作为程序接口文件。
[0007]在上述实现过程中,提供一种提取数据访问层文件和程序接口文件的具体方式,即根据文件名称进行筛选。
[0008]进一步地,在一些实施例中,所述根据所述数据访问层文件,获取数据访问层函数并保存到数据访问层函数列表中,根据所述程序接口文件,获取对外接口函数中调用的相关函数并保存到对外接口信息列表中,包括:将所述数据访问层文件解析成抽象语法树,通过所述数据访问层文件的抽象语法树获取数据访问层函数,再将所述数据访问层函数保存到数据访问层函数列表中;将所述程序接口文件解析成抽象语法树,通过所述程序接口文件的抽象语法树获取对外接口函数,确定所述对外接口函数中调用的相关函数,再将所述相关函数保存到对外接口信息列表中。
[0009]在上述实现过程中,提供一种获取所需函数的具体方式,即分别根据数据访问层文件和程序接口文件构建对应的抽象语法树后,通过抽象语法树获取得到。
[0010]进一步地,在一些实施例中,所述将所述数据访问层函数保存到数据访问层函数列表中,包括:将所述数据访问层函数的函数名称和所在的数据访问层类的类名称作为对象,保存到数据访问层函数列表中。
[0011]在上述实现过程中,将从数据访问层文件中提取出的信息以{函数名称,类名称}对象方式保存到数据访问层函数列表中,在追溯出影响接口的同时,为研发人员提供更为丰富的信息,提升研发效率。
[0012]进一步地,在一些实施例中,所述将所述相关函数保存到对外接口信息列表中,包括:通过所述程序接口文件的抽象语法树获取对应的对外接口层类的接口名称、接口函数以及接口类名称;将所述相关函数和接口名称、接口函数以及接口类名称作为对象,保存到对外接口信息列表中。
[0013]在上述实现过程中,将从程序接口文件中提取出的信息以{接口名称、接口函数、接口类名称、相关函数}对象方式保存到对外接口信息列表中,在追溯出影响接口的同时,为研发人员提供更为丰富的信息,提升研发效率。
[0014]进一步地,在一些实施例中,所述比对所述数据访问层函数列表和所述对外接口信息列表,根据比对结果确定各数据访问层函数的影响接口,包括:遍历所述数据访问层函数列表,判断所述对外接口信息列表中是否包含与当前的数据访问层函数相匹配的相关函数;若判断结果为是,将相匹配的相关函数对应的对外接口确定为当前的数据访问层函数的影响接口。
[0015]在上述实现过程中,遍历数据访问层函数列表,在对外接口信息列表中查询对外
接口调用的函数中是否包含当前的数据访问层函数,如果包含,则表明当前的数据访问层函数影响该对外接口,在修改该数据访问层后,重点回归测试该对外接口,如此可以减少回归测试所需的时间和测试资源。
[0016]进一步地,在一些实施例中,所述方法还包括:根据各数据访问层函数的影响接口,生成影响接口列表并输出;所述影响接口列表中记录所述数据访问层函数、所述数据访问层函数所在的数据访问层类的类名称以及所述影响接口的接口名称。
[0017]在上述实现过程中,在确定当前的数据访问层函数的影响接口后,以{数据访问层函数、数据访问层函数所在的类名、对外接口名称}对象方式添加到影响接口列表中,使得研发人员能够根据该影响接口列表,更为准确评估数据访问层修改对业务造成的影响。
[0018]第二方面,本申请提供的一种代码变更的影响分析装置,包括:文件提取模块,用于获取项目源码,从所述项目源码中提取出数据访问层文件和程序接口文件;其中,所述数据访问层文件是记录数据访问层类名称的文件;所述程序接口文件是记录对外接口层类名称的文件;列表获取模块,用于根据所述数据访问层文件,获取数据访问层函数并保存到数据访问层函数列表中,根据所述程序接口文件,获取对外接口函数中调用的相关函数并保存到对外接口信息列表中;所述数据访问层函数是所述数据访问层类下的函数;所述对外接口函数是所述对外接口层类下的函数;关系确定模块,用于比对所述数据访问层函数列表和所述对外接口信息列表,根据比对结果确定各数据访问层函数的影响接口。
[0019]第三方面,本申请提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码变更的影响分析方法,其特征在于,包括:获取项目源码,从所述项目源码中提取出数据访问层文件和程序接口文件;其中,所述数据访问层文件是记录数据访问层类名称的文件;所述程序接口文件是记录对外接口层类名称的文件;根据所述数据访问层文件,获取数据访问层函数并保存到数据访问层函数列表中,根据所述程序接口文件,获取对外接口函数中调用的相关函数并保存到对外接口信息列表中;所述数据访问层函数是所述数据访问层类下的函数;所述对外接口函数是所述对外接口层类下的函数;比对所述数据访问层函数列表和所述对外接口信息列表,根据比对结果确定各数据访问层函数的影响接口。2.根据权利要求1所述的方法,其特征在于,所述从所述项目源码中提取出数据访问层文件和程序接口文件,包括:查找所述项目源码中的Java文件,基于查找到的Java文件生成Java文件列表;将所述Java文件列表中的文件名称统一转换成小写形式后,查询文件名称以dto结尾的文件作为数据访问层文件,查询文件名称以controller结尾的文件作为程序接口文件。3.根据权利要求1所述的方法,其特征在于,所述根据所述数据访问层文件,获取数据访问层函数并保存到数据访问层函数列表中,根据所述程序接口文件,获取对外接口函数中调用的相关函数并保存到对外接口信息列表中,包括:将所述数据访问层文件解析成抽象语法树,通过所述数据访问层文件的抽象语法树获取数据访问层函数,再将所述数据访问层函数保存到数据访问层函数列表中;将所述程序接口文件解析成抽象语法树,通过所述程序接口文件的抽象语法树获取对外接口函数,确定所述对外接口函数中调用的相关函数,再将所述相关函数保存到对外接口信息列表中。4.根据权利要求3所述的方法,其特征在于,所述将所述数据访问层函数保存到数据访问层函数列表中,包括:将所述数据访问层函数的函数名称和所在的数据访问层类的类名称作为对象,保存到数据访问层函数列表中。5.根据权利要求4所述的方法,其特征在于,所述将所述相关函数保存到对外接口...

【专利技术属性】
技术研发人员:吴艳兵
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

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

1