System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于机器学习的全自动化代码准入方法及系统技术方案_技高网

一种基于机器学习的全自动化代码准入方法及系统技术方案

技术编号:44250448 阅读:5 留言:0更新日期:2025-02-11 13:47
本发明专利技术公开了一种基于机器学习的全自动化代码准入方法及系统,该方法包括:响应于代码准入请求,对代码准入请求中的待准入代码进行代码静态分析,获得静态分析结果文件,对静态分析结果文件进行特征量化,获得静态分析结果特征向量,将静态分析结果特征向量输入至预先构建的风险分类模型进行风险分类,确定待准入代码的风险标签,根据风险标签生成待准入代码的审查建议信息,基于审查建议信息对代码准入请求进行回复,从而实现及时向代码准入请求回复风险因素信息和风险改进策略,从而提升了代码准入审查效率,实现代码准入自动化分析,保障了代码质量,避免准入审查受主观因素影响。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种基于机器学习的全自动化代码准入方法及系统


技术介绍

1、在现代软件开发流程中,代码准入(code admission)是一个至关重要的环节,它确保只有经过严格测试和验证的代码才能被合并到主分支中,进而部署到生产环境。随着软件开发规模的扩大和版本迭代的加快,代码质量控制成为保障软件稳定性的重要环节,如何有效地管理代码变更成为软件开发团队面临的一大挑战。传统的代码审查和质量分析依赖人工,而人工审查耗时耗力,效率低下,且审查结果易受到主观因素影响,缺乏一致性,导致无法准确地识别待准入代码的风险,也无法有效地为用户提供有效的风险处理建议。


技术实现思路

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、根据所述代码结构信息和所述项目树信息构建代码块树结构;

36、基于所述代码块树结构和所述目标合并位置对所述待准入代码进行结构依赖分析,确定所述主分支代码中与所述待准入代码存在结构依赖关系的结构依赖代码块;

37、根据所述结构依赖代码块、所述风险标签和所述动态测试结果生成所述待准入代码的审查建议信息。

38、可选地,所述根据所述结构依赖代码块、所述风险标签和所述动态测试结果生成所述待准入代码的审查建议信息,包括:

39、根据所述项目树信息获取所述主分支代码中各代码块的项目功能信息;

40、基于所述主分支代码的历史运行日志获取所述主分支代码的代码块运行路径;

41、根据所述项目功能信息和所述代码块运行路径对所述待准入代码进行功能依赖分析,获取所述待准入代码的功能依赖信息;

42、获取所述主分支代码的注释信息;

43、基于所述注释信息对所述功能依赖信息进行修正,并根据修正结果确定所述主分支代码中与所述待准入代码存在功能依赖关系的功能依赖代码块;

44、根据所述功能依赖代码块、所述结构依赖代码块、所述风险标签和所述动态测试结果生成所述待准入代码的审查建议信息。

45、此外,为实现上述目的,本专利技术还提出一种基于机器学习的全自动化代码准入系统,所述基于机器学习的全自动化代码准入系统包括:

46、静态分析模块,用于响应于代码准入请求,对所述代码准入请求中的待准入代码进行代码静态分析,获得静态分析结果文件;

47、特征量化模块,用于对所述静态分析结果文件进行特征量化,获得静态分析结果特征向量;

48、风险分类模块,用于将所述静态分析结果特征向量输入至预先构建的风险分类模型进行风险分类,确定所述待准入代码的风险标签,所述风险分类模型基于历史代码分析结果文件以及所述历史代码分析结果文件对应的风险标签标注数据构建,所述风险分类模型为支持向量机;

49、动态测试模本文档来自技高网...

【技术保护点】

1.一种基于机器学习的全自动化代码准入方法,其特征在于,所述基于机器学习的全自动化代码准入方法包括:

2.如权利要求1所述的基于机器学习的全自动化代码准入方法,其特征在于,所述将所述静态分析结果特征向量输入至预先构建的风险分类模型进行风险分类,确定所述待准入代码的风险标签之前,还包括:

3.如权利要求1所述的基于机器学习的全自动化代码准入方法,其特征在于,所述对所述静态分析结果文件进行特征量化,获得静态分析结果特征向量,包括:

4.如权利要求1所述的基于机器学习的全自动化代码准入方法,其特征在于,所述根据所述风险标签对所述待准入代码进行代码动态测试,获取动态测试结果,还包括:

5.如权利要求1至3中任一项所述的基于机器学习的全自动化代码准入方法,其特征在于,所述基于所述风险标签和所述动态测试结果生成所述待准入代码的审查建议信息,还包括:

6.如权利要求5所述的基于机器学习的全自动化代码准入方法,其特征在于,所述根据所述结构依赖代码块、所述风险标签和所述动态测试结果生成所述待准入代码的审查建议信息,包括:

7.一种基于机器学习的全自动化代码准入系统,其特征在于,所述基于机器学习的全自动化代码准入系统包括:

8.一种基于机器学习的全自动化代码准入设备,其特征在于,所述基于机器学习的全自动化代码准入设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于机器学习的全自动化代码准入程序,所述基于机器学习的全自动化代码准入程序配置为实现如权利要求1至6中任一项所述的基于机器学习的全自动化代码准入方法。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于机器学习的全自动化代码准入程序,所述基于机器学习的全自动化代码准入程序被处理器执行时实现如权利要求1至6任一项所述的基于机器学习的全自动化代码准入方法。

10.一种计算机程序产品,其特征在于,所述计算机程序产品包括基于机器学习的全自动化代码准入程序,所述基于机器学习的全自动化代码准入程序被处理器执行时实现如权利要求1至6中任一项所述的基于机器学习的全自动化代码准入方法的步骤。

...

【技术特征摘要】

1.一种基于机器学习的全自动化代码准入方法,其特征在于,所述基于机器学习的全自动化代码准入方法包括:

2.如权利要求1所述的基于机器学习的全自动化代码准入方法,其特征在于,所述将所述静态分析结果特征向量输入至预先构建的风险分类模型进行风险分类,确定所述待准入代码的风险标签之前,还包括:

3.如权利要求1所述的基于机器学习的全自动化代码准入方法,其特征在于,所述对所述静态分析结果文件进行特征量化,获得静态分析结果特征向量,包括:

4.如权利要求1所述的基于机器学习的全自动化代码准入方法,其特征在于,所述根据所述风险标签对所述待准入代码进行代码动态测试,获取动态测试结果,还包括:

5.如权利要求1至3中任一项所述的基于机器学习的全自动化代码准入方法,其特征在于,所述基于所述风险标签和所述动态测试结果生成所述待准入代码的审查建议信息,还包括:

6.如权利要求5所述的基于机器学习的全自动化代码准入方法,其特征在于,所述根据所述结构依赖代码块、所述风险标签和所述动态测试结果生成所述待...

【专利技术属性】
技术研发人员:尹帮辉
申请(专利权)人:长沙金维集成电路股份有限公司
类型:发明
国别省市:

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

1