变更程序识别方法及装置制造方法及图纸

技术编号:28870852 阅读:9 留言:0更新日期:2021-06-15 23:03
本发明专利技术提供一种变更程序识别方法及装置,属于云计算技术领域。该变更程序识别方法包括:获取当前版本源代码和历史版本源代码;根据当前版本源代码和历史版本源代码确定变更行号;确定历史版本源代码的各存储过程区间;将变更行号分别与各存储过程区间匹配,根据匹配结果输出变更行号对应的存储过程。本发明专利技术可以快速精准识别变更程序,进而保证软件质量。

【技术实现步骤摘要】
变更程序识别方法及装置
本专利技术涉及云计算
,具体地,涉及一种变更程序识别方法及装置。
技术介绍
持续集成是能快速实现价值交付的重要实践。持续集成会自动地从代码托管仓库下载源代码,然后编译、部署到测试环境,自动执行代码检查和自动化测试案例,最后快速准确反馈结果,减少了传统的手工重复操作,可大大减少编译、部署和执行测试的时间,更快地获取软件质量报告。存储过程是在大型数据库系统中一组为了完成特定功能的SQL语句集。它是数据库的一种对象,存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并赋予参数来执行它。在开发实践中,开发人员一般会把多个具有类似功能的存储过程放在一个包体文件中,作为一个程序文件提交到代码托管仓库,然后编译部署到数据库里。一个开发团队可能有多个开发人员修改存储过程,当要获取最新的存储过程变更程序清单时,一般都要手工登录ORACLE数据库服务器查看当前软件版本相对基线(上一软件版本)的代码变化情况。随着包体文件中代码量的增加,对全量代码做静态代码检查和执行自动化测试案例所耗费的时间越来越长,开发人员获取软件质量报告的等待时间也随着全量代码的增加而增加,获取软件质量报告的耗时长且不准确。而且现在软件开发公司会有多个版本同时开发,当前版本的基线也在不断变化,每次修改代码后都需要人工重新做一次比较,非常耗时。对于大开发团队的管理人员来说,准确获取到存储过程变更程序然后重点守护变更程序成为了保证软件质量的重要手段。
技术实现思路
本专利技术实施例的主要目的在于提供一种变更程序识别方法及装置,快速精准识别变更程序,进而保证软件质量。为了实现上述目的,本专利技术实施例提供一种变更程序识别方法,包括:获取当前版本源代码和历史版本源代码;根据当前版本源代码和历史版本源代码确定变更行号;确定历史版本源代码的各存储过程区间;将变更行号分别与各存储过程区间匹配,根据匹配结果输出变更行号对应的存储过程。本专利技术实施例还提供一种变更程序识别装置,包括:源代码获取模块,用于获取当前版本源代码和历史版本源代码;变更行号模块,用于根据当前版本源代码和历史版本源代码确定变更行号;存储过程区间模块,用于确定历史版本源代码的各存储过程区间;变更输出模块,用于将变更行号分别与各存储过程区间匹配,根据匹配结果输出变更行号对应的存储过程。本专利技术实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,处理器执行计算机程序时实现所述的变更程序识别方法的步骤。本专利技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现所述的变更程序识别方法的步骤。本专利技术实施例的变更程序识别方法及装置先根据当前版本源代码和历史版本源代码确定变更行号,然后根据变更行号与历史版本源代码的各存储过程区间的匹配结果输出变更行号对应的存储过程,可以快速精准识别变更程序,进而保证软件质量。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一实施例中变更程序识别方法的流程图;图2是S101的流程图;图3是本专利技术实施例中S102的流程图;图4是本专利技术一实施例中代码仓库度量数据库的数据表示意图;图5是本专利技术另一实施例中代码仓库度量数据库的数据表示意图;图6是本专利技术又一实施例中代码仓库度量数据库的数据表示意图;图7是本专利技术实施例中的存储过程数据表示意图;图8是本专利技术实施例中变更程序识别装置的结构框图;图9是本专利技术实施例中计算机设备的结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本领域技术人员知道,本专利技术的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。鉴于现有技术耗时长且容易出错,本专利技术实施例提供一种变更程序识别方法,可以快速精准识别变更程序,进而保证软件质量。以下结合附图对本专利技术进行详细说明。本专利技术可以自动识别当前软件版本相对上一软件版本变更的存储过程,定时去代码托管仓库里获取不同代码分支的源码,然后基于最新的源码根据一定算法做比较,得到最新的变更程序清单。开发人员获取到变更程序清单后会重点关注程序质量,编写自动化测试案例和执行静态代码检查。管理人员获取到软件质量报告后,根据该变更程序清单找到程序修改时间和对应的程序维护人,通知程序维护人关注自己修改的程序质量,落实责任主体。图1是本专利技术一实施例中变更程序识别方法的流程图。如图1所示,变更程序识别方法包括:S101:获取当前版本源代码和历史版本源代码。一实施例中,执行S101之前还包括:根据基线获取当前程序文件和历史程序文件。图2是S101的流程图。如图2所示,S101包括:S201:获取当前程序文件的哈希值和文件路径,获取历史程序文件的哈希值和文件路径。具体实施时,可以先从代码仓库度量数据库获取近期提交的程序文件记录。代码仓库度量数据库是包含了每个程序文件每次提交信息的ORACLE数据库。开发人员提交代码后,代码仓库度量数据库会记录下本次提交的信息,包括版本库、代码分支、程序文件全路径、提交时间、程序作者邮箱、程序作者和入库时间等信息,并把信息存入数据库的一张表里。每当有新提交代码时,该度量数据库会自动记录提交信息,并将数据库服务器系统时间作为这笔记录的入库时间。本专利技术会增量从度量数据库里获取最近新增的提交信息(当前程序文件的哈希值和文件路径),并保存当前最大的入库时间,作为下一次拉取的基线,从而实现增量拉取。图4是本专利技术一实施例中代码仓库度量数据库的数据表示意图。图4中的箭头表示当前拉取的基线。接着,本专利技术遍历新增的每条记录,使用版本库和程序文件全路径等信息查找当前程序文件之前版本的软件状态。图5是本专利技术另一实施例中代码仓库度量数据库的数据表示意图,展示了程序文件BTHPAMC2_Sql.sql近期的提交信息。在查找2020年12月版变更时(图5中的代码分支2012B所在行的数据为当前程序文件的数据),需要查找之前版本(历史程序文件)的最新状态以获取历史程序文件的哈希值和文件路径。框中的数据表示程序之前版本的最新状态(图5中的代码分支2011B所在行的数据为历史程序文件的数据)S本文档来自技高网...

【技术保护点】
1.一种变更程序识别方法,其特征在于,包括:/n获取当前版本源代码和历史版本源代码;/n根据所述当前版本源代码和所述历史版本源代码确定变更行号;/n确定所述历史版本源代码的各存储过程区间;/n将所述变更行号分别与各存储过程区间匹配,根据匹配结果输出所述变更行号对应的存储过程。/n

【技术特征摘要】
1.一种变更程序识别方法,其特征在于,包括:
获取当前版本源代码和历史版本源代码;
根据所述当前版本源代码和所述历史版本源代码确定变更行号;
确定所述历史版本源代码的各存储过程区间;
将所述变更行号分别与各存储过程区间匹配,根据匹配结果输出所述变更行号对应的存储过程。


2.根据权利要求1所述的变更程序识别方法,其特征在于,获取当前版本源代码和历史版本源代码包括:
获取当前程序文件的哈希值和文件路径,获取历史程序文件的哈希值和文件路径;
根据所述当前程序文件的哈希值和文件路径获取所述当前版本源代码;
根据所述历史程序文件的哈希值和文件路径获取所述历史版本源代码。


3.根据权利要求2所述的变更程序识别方法,其特征在于,获取当前版本源代码和历史版本源代码之前,还包括:
根据基线获取当前程序文件和历史程序文件。


4.根据权利要求3所述的变更程序识别方法,其特征在于,根据匹配结果输出所述变更行号对应的获取存储过程之后,还包括:
根据所述当前程序文件更新所述基线。


5.一种变更程序识别装置,其特征在于,包括:
源代码获取模块,用于获取当前版本源代码和历史版本源代码;
变更行号模块,用于根据所述当前版本源代码和所述历史版本源代码确定变更行号;
存储过程区间模块,...

【专利技术属性】
技术研发人员:贾国贤温建波廖定李学优
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1