一种代码变更风险估算审核方法及装置制造方法及图纸

技术编号:26375867 阅读:17 留言:0更新日期:2020-11-19 23:44
本发明专利技术提供了一种代码变更风险估算审核方法及装置,包括:对比获取的最新代码与当前代码之间的差异生成当日的代码增量变更清单;根据代码增量变更清单中的数据库操作代码生成数据库操作的行为描述信息;定义获取的数据库多维度特征中每一类特征维度的风险权重;根据数据库操作的行为描述信息与数据库多维特征的对应关系对数据库操作代码进行风险估算审核。本申请对于代码变更中的数据库操作进行估算和自动审核,防止高性能风险的变更提交和实施,并且因为变更引入的性能风险在T+1天就能被发现,降低了风险修改的成本。

【技术实现步骤摘要】
一种代码变更风险估算审核方法及装置
本申请属于数据库安全
,可以应用于金融领域,具体地讲,涉及一种代码变更风险估算审核方法及装置。
技术介绍
随着软件开发模型的不断发展,出于快速交付、快速迭代的考虑,敏捷开发、持续集成理念在软件研发过程中的引入和使用越来越普遍。这样使得版本的迭代周期越来越短、需求变化越来越频繁,相应地,由版本迭代和需求变化引入的风险也越来越多。在这其中,性能风险是一类影响比较大的风险,一旦出现,影响的是一个业务场景甚至整个系统的正常运行,必须要在迭代和持续集成的过程中尽早发现和排除。而在影响系统性能的一系列软件操作中,对数据库的操作,会直接影响整体操作的效率,而且数据库的横向扩展往往并不像应用端的横向扩展那么容易,因此由数据库操作(包括增删改查DML以及数据库结构变更DDL)引起的性能风险,对软件可用性和响应效率有非常重要的影响。在传统软件研发模型中,要到测试阶段才关注软件的性能。测试消耗的人力巨大(比如需要组织大量人力做性能体验,或者开发复杂的性能测试脚本对用户并发行为做仿真)、发现问题后的变更成本也巨大。
技术实现思路
本申请提供了一种代码变更风险估算审核方法及装置,以至少解决目前由于代码的变更而导致的系统性能潜在风险无法被及时识别的问题。根据本申请的一个方面,提供了一种代码变更风险估算审核方法,包括:对比获取的最新代码与当前代码之间的差异生成当日的代码增量变更清单;根据代码增量变更清单中的数据库操作代码生成数据库操作的行为描述信息;定义获取的数据库多维度特征中每一类特征维度的风险权重;多维度特征至少包括:数据库包含的表、数据表的字段组成、索引组成等结构信息和数据表数据总量;根据数据库操作的行为描述信息与数据库多维特征的对应关系对数据库操作代码进行风险估算审核。在一实施例中,根据代码增量变更清单中的数据库操作代码生成数据库操作的行为描述信息,包括:从代码增量变更清单中提取以SQL语句描述的数据库操作代码;将以SQL语句描述的数据库操作代码解析为抽象语法树;遍历抽象语法树生成数据库操作的行为描述信息。在一实施例中,定义获取的数据库多维度特征中每一类特征维度的风险权重,具体包括:根据历史数据,为每一类特征维度配置对应的风险权重。在一实施例中,根据数据库操作的行为描述信息与数据库多维特征的对应关系对数据库操作代码进行风险估算审核,包括:为数据库操作的行为描述信息匹配对应的数据库特征维度;查询该数据库特征维度对应的风险权重并赋予该行为描述信息;根据该行为描述信息的风险权重计算数据库操作代码的风险值。在一实施例中,代码变更风险估算审核方法还包括:根据风险值与预设的阈值之间的大小关系确定是否审核通过。根据本申请的另一个方面,还提供了一种代码变更风险估算审核装置,包括:代码增量变更清单生成单元,用于对比获取的最新代码与当前代码之间的差异生成当日的代码增量变更清单;行为描述信息生成单元,用于根据代码增量变更清单中的数据库操作代码生成数据库操作的行为描述信息;风险权重定义单元,用于定义获取的数据库多维度特征中每一类特征维度的风险权重;多维度特征至少包括:数据库包含的表、数据表的字段组成、索引组成等结构信息和数据表数据总量;风险估算审核单元,用于根据数据库操作的行为描述信息与数据库多维特征的对应关系对数据库操作代码进行风险估算审核。在一实施例中,行为描述信息生成单元包括:数据库操作代码提取模块,用于从代码增量变更清单中提取以SQL语句描述的数据库操作代码;抽象语法树获得模块,用于将以SQL语句描述的数据库操作代码解析为抽象语法树;行为描述信息获取模块,用于遍历抽象语法树生成数据库操作的行为描述信息。在一实施例中,风险权重定义单元具体包括:权重配置模块,用于根据历史数据,为每一类特征维度配置对应的风险权重。在一实施例中,风险估算审核单元包括:特征维度匹配模块,用于为数据库操作的行为描述信息匹配对应的数据库特征维度;风险赋值模块,用于查询该数据库特征维度对应的风险权重并赋予该行为描述信息;风险值计算模块,用于根据该行为描述信息的风险权重计算数据库操作代码的风险值。在一实施例中,本代码变更风险估算审核装置还包括:审核单元,用于根据风险值与预设的阈值之间的大小关系确定是否审核通过。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请提供的一种代码变更风险估算审核装置的结构框图。图2为本申请提供的一种代码变更风险估算审核方法流程图。图3为本申请实施例中生成数据库操作的行为描述信息流程图。图4为本申请实施例中生成SQL语句的抽象语法树流程图。图5为本申请实施例中风险估算审核方法流程图。图6为本申请实施例中一种电子设备的具体实施方式。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。目前,由于程序代码版本迭代和需求变化引入的风险越来越多。在这其中,对系统造成的性能风险是一类影响比较大的风险,一旦出现,影响的是一个业务场景甚至整个系统的正常运行,必须要在程序代码迭代和持续集成的过程中尽早发现和排除。为了能够及时发现系统风险、降低研发成本,本申请提供了一种代码变更风险估算审核方法,如图2所示,包括:S201:对比获取的最新代码与当前代码之间的差异生成当日的代码增量变更清单。在一具体实施例中,代码下载单元1定期从代码库中下载最新的代码,对于每个版本分支(Branch),本专利技术需要保存两份代码快照,分别对应前一天日构建和当天日构建。对于每个版本分支,基于代码下载单元1保存的两份代码快照,逐个文件做增量比对,找到当天的增量编码内容,形成增量代码变更清单。增量代码的粒度可以到程序文件或代码片段。S202:根据代码增量变更清单中的数据库操作代码生成数据库操作的行为描述信息。在一具体实施例中,针对变更比对单元2输出的增量代码变更清单,分析其中涉及数据库操作的逻辑代码,将其解构成SQL语句的形式,并拆解成具体的操作行为。S203:定义获取的数据库多维度特征中每一类特征维度的风险权重;多维度特征至少包括:数据库包含的表、数据表的字段组成、索引组成等结构信息和数据表数据总量。在一具体实施本文档来自技高网...

【技术保护点】
1.一种代码变更风险估算审核方法,其特征在于,包括:/n对比获取的最新代码与当前代码之间的差异生成当日的代码增量变更清单;/n根据所述代码增量变更清单中的数据库操作代码生成数据库操作的行为描述信息;/n为获取的数据库多维度特征中每一类特征维度匹配风险权重;所述多维度特征至少包括:数据库包含的表、数据表的字段组成、索引组成等结构信息和数据表数据总量;/n根据所述数据库操作的行为描述信息与所述数据库多维特征的对应关系对数据库操作代码进行风险估算审核。/n

【技术特征摘要】
1.一种代码变更风险估算审核方法,其特征在于,包括:
对比获取的最新代码与当前代码之间的差异生成当日的代码增量变更清单;
根据所述代码增量变更清单中的数据库操作代码生成数据库操作的行为描述信息;
为获取的数据库多维度特征中每一类特征维度匹配风险权重;所述多维度特征至少包括:数据库包含的表、数据表的字段组成、索引组成等结构信息和数据表数据总量;
根据所述数据库操作的行为描述信息与所述数据库多维特征的对应关系对数据库操作代码进行风险估算审核。


2.根据权利要求1所述的代码变更风险估算审核方法,其特征在于,所述根据所述代码增量变更清单中的数据库操作代码生成数据库操作的行为描述信息,包括:
从所述代码增量变更清单中提取以SQL语句描述的数据库操作代码;
将所述以SQL语句描述的数据库操作代码解析为抽象语法树;
遍历所述抽象语法树生成数据库操作的行为描述信息。


3.根据权利要求1所述的代码变更风险估算审核方法,其特征在于,所述为获取的数据库多维度特征中每一类特征维度匹配风险权重,具体包括:
根据历史数据,为每一类特征维度配置对应的风险权重。


4.根据权利要求1所述的代码变更风险估算审核方法,其特征在于,所述根据所述数据库操作的行为描述信息与所述数据库多维特征的对应关系对数据库操作代码进行风险估算审核,包括:
为所述数据库操作的行为描述信息匹配对应的数据库特征维度;
查询该数据库特征维度对应的风险权重并赋予该行为描述信息;
根据该行为描述信息的风险权重计算数据库操作代码的风险值。


5.根据权利要求4所述的代码变更风险估算审核方法,其特征在于,还包括:
根据所述风险值与预设的阈值之间的大小关系确定是否审核通过。


6.一种代码变更风险估算审核装置,其特征在于,包括:
代码增量变更清单生成单元,用于对比获取的最新代码与当前代码之间的差异生成当日的代码增量变更清单;
行为描述信息生成单元,用于根据所述代码增量变更清单中的数据库操...

【专利技术属性】
技术研发人员:陈肇权林海马泽政王雨超
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:北京;11

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

1