本申请涉及计算机,尤其涉及一种代码变更风险评估方法、系统、设备及存储介质。
背景技术:
1、软件上线后往往伴随着各种隐患风险,如系统故障、安全漏洞、功能缺陷等,其中代码变更是导致隐患发生的最直接原因。因此,做好代码变更风险的评估是提高软件质量、减少软件故障、避免安全风险必不可少的过程之一。目前在软件开发领域,常用处理代码变更隐患风险的手段有静态扫描、代码评审和精准测试等。使用代码静态扫描及对代码管理规范评估,只能发现一些浅层的规范问题和安全隐患,不能发现功能缺陷和故障隐患,代码变更风险评估不够全面。代码评审是发现功能缺陷和故障隐患的有效途径,但主要依赖于评审人对业务的理解和熟悉程度和评审人的能力经验,代码变更风险评估不够客观。精准测试可以溯源本次代码变更的测试覆盖率、影响范围,是对功能缺陷和故障隐患较为有效的分析手段,通常软件上线伴随的代码变更是海量级的、复杂多变的,对所有代码进行精准测试评估的成本高、效率低下。
技术实现思路
1、本申请实施例的主要目的在于提出一种代码变更风险评估方法、系统、设备及存储介质,旨在提高代码变更风险评估的全面性、客观性和评估效率。
2、为实现上述目的,本申请实施例的一方面提出了一种代码变更风险评估方法,包括以下步骤:
3、获取变更代码的链路调用信息,并根据所述链路调用信息确定变更代码的复杂度;
4、获取变更代码的接口访问量,并根据所述接口访问量和业务总流量确定变更代码的热度等级;
5、获取变更代码的操作对象,并根据所述操作对象的能力等级确定变更代码的质量等级;
6、将所述变更代码的复杂度、热度等级和质量等级确定为变更代码的风险因子,并根据所述风险因子确定变更代码的风险等级,其中,所述风险等级与所述复杂度和所述热度等级成正比,所述风险等级与所述质量等级成反比。
7、在一些实施例中,所述代码变更风险评估方法还包括以下步骤:
8、获取变更代码的历史故障信息;
9、将所述历史故障信息确定为变更代码的风险因子。
10、在一些实施例中,所述获取变更代码的链路调用信息,并根据所述链路调用信息确定变更代码的复杂度,包括以下步骤:
11、从代码调用链路信息库中获取变更代码的链路调用信息;
12、根据所述链路调用信息确定链路调用层次;
13、根据所述链路调用层次所在的复杂度判定区间,确定变更代码的复杂度。
14、在一些实施例中,所述获取变更代码的接口访问量,并根据所述接口访问量和业务总流量确定变更代码的热度等级,包括以下步骤:
15、从代码调用链路信息库中获取变更代码的代码接口,并统计所述代码接口的接口访问量,其中,所述接口访问量包括变更代码变更前后的第一访问量和第二访问量;
16、根据所述接口访问量确定变更代码影响流量;
17、根据所述变更代码影响流量与所述业务总流量的比值所在的热度判定区间,确定变更代码的热度等级。
18、在一些实施例中,所述获取变更代码的操作对象,并根据所述操作对象的能力等级确定变更代码的质量等级,包括以下步骤:
19、从对象能力体系信息库中获取变更代码的操作对象和所述操作对象的能力等级,其中,所述对象能力体系信息库用于代码和操作对象的映射关系,所述对象能力体系信息库还存储有操作对象的能力等级和业务范围信息;
20、根据所述操作对象的能力等级和业务范围信息确定变更代码的质量等级,其中,所述质量等级与所述能力等级成正比。
21、在一些实施例中,所述代码调用链路信息库通过以下步骤获得:
22、获取系统流量日志;
23、根据所述系统流量日志中确定业务流量、代码接口与代码三者之间的映射关系,并根据所述映射关系确定代码结构信息;
24、采用字节码处理工具对所述代码结构信息进行分析,得到代码调用链路信息库。
25、在一些实施例中,所述根据所述风险因子确定变更代码的风险等级,包括以下步骤:
26、分别根据各个风险因子的判定阈值对变更代码的各个风险因子进行合格判定,得到风险因子的合格数量;
27、根据变更代码的风险因子的合格数量确定变更代码的风险等级。
28、为实现上述目的,本申请实施例的另一方面提出了一种代码变更风险评估系统,包括:
29、第一模块,用于获取变更代码的链路调用信息,并根据所述链路调用信息确定变更代码的复杂度;
30、第二模块,用于获取变更代码的接口访问量,并根据所述接口访问量和业务总流量确定变更代码的热度等级;
31、第三模块,用于获取变更代码的操作对象,并根据所述操作对象的能力等级确定变更代码的质量等级;
32、第四模块,用于将所述变更代码的复杂度、热度等级和质量等级确定为变更代码的风险因子,并根据所述风险因子确定变更代码的风险等级,其中,所述风险等级与所述复杂度和所述热度等级成正比,所述风险等级与所述质量等级成反比。
33、为实现上述目的,本申请实施例的另一方面提出了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现上述实施例所述的代码变更风险评估方法。
34、为实现上述目的,本申请实施例的另一方面提出了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所述的代码变更风险评估方法。
35、本申请提出的代码变更风险评估方法、系统、设备及存储介质,其通过获取变更代码的链路调用信息并根据链路调用信息确定变更代码的复杂度,获取变更代码的接口访问量并根据接口访问量和业务总流量确定变更代码的热度等级,获取变更代码的操作对象并根据操作对象的能力等级确定变更代码的质量等级,然后将变更代码的复杂度、热度等级和质量等级确定为变更代码的风险因子,根据风险因子确定变更代码的风险等级,在评估变更代码风险等级时,考虑变更代码动态调用链路的复杂度能够提高风险评估的全面性,考虑变更代码操作对象的能力能够提高风险评估的客观性,考虑变更代码相对于业务总流量的热度等级能够准确反映变更代码对于业务影响的重要程度,代码变更的风险评估结合实际业务进行分析,提高评估效率。
1.一种代码变更风险评估方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的代码变更风险评估方法,其特征在于,所述代码变更风险评估方法还包括以下步骤:
3.根据权利要求1所述的代码变更风险评估方法,其特征在于,所述获取变更代码的链路调用信息,并根据所述链路调用信息确定变更代码的复杂度,包括以下步骤:
4.根据权利要求3所述的代码变更风险评估方法,其特征在于,所述获取变更代码的接口访问量,并根据所述接口访问量和业务总流量确定变更代码的热度等级,包括以下步骤:
5.根据权利要求1所述的代码变更风险评估方法,其特征在于,所述获取变更代码的操作对象,并根据所述操作对象的能力等级确定变更代码的质量等级,包括以下步骤:
6.根据权利要求3所述的代码变更风险评估方法,其特征在于,所述代码调用链路信息库通过以下步骤获得:
7.根据权利要求1所述的代码变更风险评估方法,其特征在于,所述根据所述风险因子确定变更代码的风险等级,包括以下步骤:
8.一种代码变更风险评估系统,其特征在于,包括:
9.一种电子设备,其特征在于,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,所述程序被所述处理器执行时实现如权利要求1至7任一项所述的代码变更风险评估方法的步骤。
10.一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至7中任一项所述的代码变更风险评估方法的步骤。