首页 / 专利库 / 软件 / 补丁 / 热补丁 / 基于代码变更历史的软件代码质量问题自动修复方法、系统及介质

基于代码变更历史的软件代码质量问题自动修复方法、系统及介质

阅读:158发布:2020-05-08

专利汇可以提供基于代码变更历史的软件代码质量问题自动修复方法、系统及介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于代码变更历史的 软件 代码 质量 问题自动修复方法、系统及介质,本发明自动修复方法的步骤包括获取待修复的目标CQI代码,根据其所违反的静态检查规则信息从预先基于代码变更历史建立的修复模式库中找出匹配的CQI修复模式,其中修复模式库中包含目标CQI代码所违反的静态检查规则信息及其对应CQI修复模式之间的映射;根据匹配的CQI修复模式生成目标CQI代码的CQI修复 补丁 。本发明重点关注从 软件代码 库的历史记录中提取到的代码质量问题修复模式,利用其对代码质量问题进行自动修复,该方法计算简单,可扩展性强,可以有效的自动化修复代码质量问题,降低软件开发的维护成本,提高开发者的开发效率。,下面是基于代码变更历史的软件代码质量问题自动修复方法、系统及介质专利的具体信息内容。

1.一种基于代码变更历史的软件代码质量问题自动修复方法,其特征在于实施步骤包括:
1)获取待修复的目标CQI代码;
2)针对目标CQI代码,根据其所违反的静态检查规则信息从预先基于代码变更历史建立的修复模式库中找出匹配的CQI修复模式,所述修复模式库中包含目标CQI代码所违反的静态检查规则信息及其对应CQI修复模式之间的映射;
3)根据匹配的CQI修复模式生成目标CQI代码的CQI修复补丁
2.根据权利要求1所述的基于代码变更历史的软件代码质量问题自动修复方法,其特征在于,所述CQI修复模式包括所修复的静态检查规则信息TYPE、所适用的上下文环境信息CCTX、代码变更处的代码变更动作序列FA,其中所适用的上下文环境信息CCTX是一个抽象语法树节点序列所构成的向量。
3.根据权利要求2所述的基于代码变更历史的软件代码质量问题自动修复方法,其特征在于,步骤2)的详细步骤包括:
2.1)使用Word2Vec将目标CQI代码进行向量化得到第一向量,分别将修复模式库中各个CQI修复模式所对应的修复模式代码使用Word2Vec进行向量化得到第二向量,分别计算第一向量和各个第二向量之间的余弦值;
2.2)选择余弦值最大的修复模式作为和目标CQI代码匹配的CQI修复模式。
4.根据权利要求2所述的基于代码变更历史的软件代码质量问题自动修复方法,其特征在于,步骤3)的详细步骤包括:
3.1)找到匹配的CQI修复模式的代码变更动作序列FA;
3.2)通过得到的代码变更动作序列FA对目标CQI代码进行修改
3.3)验证目标CQI代码的CQI是否已经被修改,如果已经被修复,则根据修改后的代码生成目标CQI代码的CQI修复补丁。
5.根据权利要求1所述的基于代码变更历史的软件代码质量问题自动修复方法,其特征在于,步骤2)之前包括基于代码变更历史建立的修复模式库的步骤,详细步骤包括:
S1)基于代码变更历史收集软件代码库中的CQI修复记录;
S2)对于每一条CQI修复记录,将其软件代码库回退到修复记录前一个版本并进行静态分析,在分析完成后将其软件代码库设置到修复后的版本再次进行静态分析,通过两次静态分析获取该条CQI修复记录所修复的具体CQI;
S3)对于每一条CQI修复记录,提取其中与CQI修复相关的代码变更fix_hook及其相关的代码范围;
S4)针对所有的CQI修复记录进行CQI修复模式挖掘,从而建立包含目标CQI代码所违反的静态检查规则信息及其对应CQI修复模式之间的映射的修复模式库。
6.根据权利要求5所述的基于代码变更历史的软件代码质量问题自动修复方法,其特征在于,步骤S1)的详细步骤包括:
S1.1)从开源社区网站中获取热程度靠前的指定数量个指定编程语言的软件代码库;
S1.2)从软件代码库中采用指定的关键词从提交历史中筛选出于代码质量问题代修复有关的CQI修复记录。
7.根据权利要求5所述的基于代码变更历史的软件代码质量问题自动修复方法,其特征在于,步骤S3)中提取其中与CQI修复相关的代码变更fix_hook的详细步骤包括:
S3.1)针对当前CQI修复记录,输入对应的存储历史记录的变更日志文件logfile、修复版本号commit_SHA和CQI起始代码行数issue_line;
S3.2)通过匹配修复版本号commit_SHA和指定的源文件名来定位大概的修复区域,然后对于修复区域中的每行单独代码进行扫描,初始化变量hooks,在修复前版本和修复后版本中计算其代码行范围,最终将添加的代码行和删除的代码行加入到变量hooks中,最终将变量hooks作为与CQI修复相关的代码变更fix_hook,输出与CQI修复相关的代码变更fix_hook及其相关的代码范围。
8.根据权利要求5所述的基于代码变更历史的软件代码质量问题自动修复方法,其特征在于,步骤S4)的详细步骤包括:
S4.1)对所有的CQI修复记录的代码进行分词;
S4.2)针对每一个CQI修复记录,将其代码根据分词后的结果解析成抽象语法树AST,然后将抽象语法树AST中每个节点node按照深度优先排列为向量序列,最后将其中与命名有关的节点进行抽象化处理,并对函数名等都进行抽象处理;
S4.3)定义CQI修复模式中对抽象语法树AST进行变更的动作,并按照定义的动作提取各个CQI修复记录中在代码变更fix_hook处的代码变更动作序列FA,从而建立各个CQI修复记录对应的CQI修复模式FP:FP=(TYPE,CCTX,FA),其中TYPE表示CQI修复模式包括所修复的静态检查规则信息、CCTX表示CQI修复模式所适用的上下文环境信息、FA表示CQI修复模式代码变更处的代码变更动作序列,其中所适用的上下文环境信息CCTX是一个抽象语法树节点序列所构成的向量;
S4.4)将所有的CQI修复模式FP组合得到修复模式库。
9.一种基于代码变更历史的软件代码质量问题自动修复系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~8中任意一项所述基于代码变更历史的软件代码质量问题自动修复方法的步骤,或者该计算机设备的存储介质上存储有被编程或配置以执行权利要求1~8中任意一项所述基于代码变更历史的软件代码质量问题自动修复方法的计算机程序
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有被编程或配置以执行权利要求1~8中任意一项所述基于代码变更历史的软件代码质量问题自动修复方法的计算机程序。

说明书全文

基于代码变更历史的软件代码质量问题自动修复方法、系统

及介质

技术领域

[0001] 本发明涉及软件开发缺陷修复领域,具体涉及一种基于代码变更历史的软件代码质量问题自动修复方法、系统及介质,用于基于海量的开源代码仓库中的静态代码质量问题修复记录中所挖掘的修复模式,自动化的对语义上下文环境所匹配的质量问题代码进行修复。

背景技术

[0002] 随着科技的发展,软件已成为人们工作,学习,娱乐的重要工具,无论是智能手机还是个人电脑都离不开软件,根据github2018年度报告,github上已经有9600万个软件代码仓库,大到超级计算机,小到智能手表,软件应用已经于社会生活各个方面密不可分。
[0003] 无论是操作系统软件还是计算器软件,软件的可用性,可维护性,可读性,正确性等质量属性一直被用户以及开发者所关注。而软件质量的一个重要属性是其代码质量。软件的代码质量一般可分为内部质量属性与外部质量属性两种类型。外部质量属性反映软件在运行时阶段的属性,如功能行和正确性,而内部质量属性存在于开发和维护中,这是开发人员所关心的,如可维护性和可读性。高质量的内部源代码不仅提高了代码的可读性,帮助开发人员快速理解代码所表达的显式和隐式含义,而且降低了崩溃的险和软件维护的成本。代码内部质量问题(CQI)可以通过代码环境和SonarQube等静态分析工具来检测,这些工具在开源社区中得到了广泛的应用。代码内部质量问题可以分为漏洞、Bug和代码气味。
[0004] 在软件的开发和维护中不可避免会产生代码质量问题,其可以通过静态检查工具进行检测。但是修复则是一个耗时费的工作,而且目前的修复方法是以经验判定为主,需要开发者花费大量精力对代码质量进行维护,消耗大量的成本,且重复工作很多。

发明内容

[0005] 本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于代码变更历史的软件代码质量问题自动修复方法、系统及介质,本发明重点关注从软件代码库的历史记录中提取到的代码质量问题修复模式,利用其对代码质量问题进行自动修复,该方法计算简单,可扩展性强,可以有效的自动化修复代码质量问题,降低软件开发的维护成本,提高开发者的开发效率。
[0006] 为了解决上述技术问题,本发明采用的技术方案为:一种基于代码变更历史的软件代码质量问题自动修复方法,实施步骤包括:
1)获取待修复的目标CQI代码;
2)针对目标CQI代码,根据其所违反的静态检查规则信息从预先基于代码变更历史建立的修复模式库中找出匹配的CQI修复模式,所述修复模式库中包含目标CQI代码所违反的静态检查规则信息及其对应CQI修复模式之间的映射;
3)根据匹配的CQI修复模式生成目标CQI代码的CQI修复补丁
[0007] 可选地,所述CQI修复模式包括所修复的静态检查规则信息TYPE、所适用的上下文环境信息CCTX、代码变更处的代码变更动作序列FA,其中所适用的上下文环境信息CCTX是一个抽象语法树节点序列所构成的向量。
[0008] 可选地,步骤2)的详细步骤包括:2.1)使用Word2Vec将目标CQI代码进行向量化得到第一向量,分别将修复模式库中各个CQI修复模式所对应的修复模式代码使用Word2Vec进行向量化得到第二向量,分别计算第一向量和各个第二向量之间的余弦值;
2.2)选择余弦值最大的修复模式作为和目标CQI代码匹配的CQI修复模式。
[0009] 可选地,步骤3)的详细步骤包括:3.1)找到匹配的CQI修复模式的代码变更动作序列FA;
3.2)通过得到的代码变更动作序列FA对目标CQI代码进行修改
3.3)验证目标CQI代码的CQI是否已经被修改,如果已经被修复,则根据修改后的代码生成目标CQI代码的CQI修复补丁。
[0010] 可选地,步骤2)之前包括基于代码变更历史建立的修复模式库的步骤,详细步骤包括:S1)基于代码变更历史收集软件代码库中的CQI修复记录;
S2)对于每一条CQI修复记录,将其软件代码库回退到修复记录前一个版本并进行静态分析,在分析完成后将其软件代码库设置到修复后的版本再次进行静态分析,通过两次静态分析获取该条CQI修复记录所修复的具体CQI;
S3)对于每一条CQI修复记录,提取其中与CQI修复相关的代码变更fix_hook及其相关的代码范围;
S4)针对所有的CQI修复记录进行CQI修复模式挖掘,从而建立包含目标CQI代码所违反的静态检查规则信息及其对应CQI修复模式之间的映射的修复模式库。
[0011] 可选地,步骤S1)的详细步骤包括:S1.1)从开源社区网站中获取热程度靠前的指定数量个指定编程语言的软件代码库;
S1.2)从软件代码库中采用指定的关键词从提交历史中筛选出于代码质量问题代修复有关的CQI修复记录。
[0012] 可选地,步骤S3)中提取其中与CQI修复相关的代码变更fix_hook的详细步骤包括:S3.1)针对当前CQI修复记录,输入对应的存储历史记录的变更日志文件logfile、修复版本号commit_SHA和CQI起始代码行数issue_line;
S3.2)通过匹配修复版本号commit_SHA和指定的源文件名来定位大概的修复区域,然后对于修复区域中的每行单独代码进行扫描,初始化变量hooks,在修复前版本和修复后版本中计算其代码行范围,最终将添加的代码行和删除的代码行加入到变量hooks中,最终将变量hooks作为与CQI修复相关的代码变更fix_hook,输出与CQI修复相关的代码变更fix_hook及其相关的代码范围。
[0013] 可选地,步骤S4)的详细步骤包括:S4.1)对所有的CQI修复记录的代码进行分词;
S4.2)针对每一个CQI修复记录,将其代码根据分词后的结果解析成抽象语法树AST,然后将抽象语法树AST中每个节点node按照深度优先排列为向量序列,最后将其中与命名有关的节点进行抽象化处理,并对函数名等都进行抽象处理;
S4.3)定义CQI修复模式中对抽象语法树AST进行变更的动作,并按照定义的动作提取各个CQI修复记录中在代码变更fix_hook处的代码变更动作序列FA,从而建立各个CQI修复记录对应的CQI修复模式FP:FP=(TYPE,CCTX,FA),其中TYPE表示CQI修复模式包括所修复的静态检查规则信息、CCTX表示CQI修复模式所适用的上下文环境信息、FA表示CQI修复模式代码变更处的代码变更动作序列,其中所适用的上下文环境信息CCTX是一个抽象语法树节点序列所构成的向量;
S4.4)将所有的CQI修复模式FP组合得到修复模式库。
[0014] 此外,本发明还提供一种基于代码变更历史的软件代码质量问题自动修复系统,包括计算机设备,该计算机设备被编程或配置以执行所述基于代码变更历史的软件代码质量问题自动修复方法的步骤,或者该计算机设备的存储介质上存储有被编程或配置以执行所述基于代码变更历史的软件代码质量问题自动修复方法的计算机程序
[0015] 此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述基于代码变更历史的软件代码质量问题自动修复方法的计算机程序。
[0016] 和现有技术相比,本发明具有下述优点:本发明自动修复方法的步骤包括获取待修复的目标CQI代码,根据其所违反的静态检查规则信息从预先基于代码变更历史建立的修复模式库中找出匹配的CQI修复模式,其中修复模式库中包含目标CQI代码所违反的静态检查规则信息及其对应CQI修复模式之间的映射;根据匹配的CQI修复模式生成目标CQI代码的CQI修复补丁。本发明重点关注从软件代码库的历史记录中提取到的代码质量问题修复模式,利用其对代码质量问题进行自动修复,该方法计算简单,可扩展性强,可以有效的自动化修复代码质量问题,降低软件开发的维护成本,提高开发者的开发效率。附图说明
[0017] 图1为本发明实施例方法的基本流程示意图。
[0018] 图2为本发明实施例中所采用算法1的伪代码示意图。
[0019] 图3为本发明实施例中所采用算法2的伪代码示意图。
[0020] 图4为本发明实施例中得到的修复模式结果示意图。
[0021] 图5为本发明实施例中得到的各CQI修复正确率统计结果示意图。

具体实施方式

[0022] 见图1,本实施例基于代码变更历史的软件代码质量问题自动修复方法的实施步骤包括:1)获取待修复的目标CQI代码;
2)针对目标CQI代码,根据其所违反的静态检查规则信息从预先基于代码变更历史建立的修复模式库中找出匹配的CQI修复模式,所述修复模式库中包含目标CQI代码所违反的静态检查规则信息及其对应CQI修复模式之间的映射;
3)根据匹配的CQI修复模式生成目标CQI代码的CQI修复补丁。
[0023] 本实施例中,CQI修复模式包括所修复的静态检查规则信息TYPE、所适用的上下文环境信息CCTX、代码变更处的代码变更动作序列FA,其中所适用的上下文环境信息CCTX是一个抽象语法树节点序列所构成的向量。
[0024] 本实施例中,步骤2)的详细步骤包括:2.1)使用Word2Vec将目标CQI代码进行向量化得到第一向量,分别将修复模式库中各个CQI修复模式所对应的修复模式代码使用Word2Vec进行向量化得到第二向量,分别计算第一向量和各个第二向量之间的余弦值;
2.2)选择余弦值最大的修复模式作为和目标CQI代码匹配的CQI修复模式。
[0025] 本实施例中,步骤3)的详细步骤包括:3.1)找到匹配的CQI修复模式的代码变更动作序列FA;
3.2)通过得到的代码变更动作序列FA对目标CQI代码进行修改;
3.3)验证目标CQI代码的CQI是否已经被修改,如果已经被修复,则根据修改后的代码生成目标CQI代码的CQI修复补丁。
[0026] 本实施例步骤2)之前包括基于代码变更历史建立的修复模式库的步骤,详细步骤包括:S1)基于代码变更历史收集软件代码库中的CQI修复记录;
S2)对于每一条CQI修复记录,将其软件代码库回退到修复记录前一个版本并进行静态分析,在分析完成后将其软件代码库设置到修复后的版本再次进行静态分析,通过两次静态分析获取该条CQI修复记录所修复的具体CQI;
S3)对于每一条CQI修复记录,提取其中与CQI修复相关的代码变更fix_hook及其相关的代码范围;
S4)针对所有的CQI修复记录进行CQI修复模式挖掘,从而建立包含目标CQI代码所违反的静态检查规则信息及其对应CQI修复模式之间的映射的修复模式库。
[0027] 本实施例中,步骤S1)的详细步骤包括:S1.1)从开源社区网站中获取热门程度靠前的指定数量个指定编程语言的软件代码库;本实施例中具体是从开源社区github通过API获取前200个star(github中衡量项目热门程度的指标)最多的java语言软件代码库。
[0028] S1.2)从软件代码库中采用指定的关键词从提交历史中筛选出于代码质量问题代修复有关的CQI修复记录。在获取软件代码库后,本实施例中通过“fix, CQI fix, code flaw, code quality, checkstyle, findbugs, sonarqube”等关键词,从代码库的git提交历史中筛选出于CQI修复有关的CQI修复记录。
[0029] 本实施例步骤S2)中对于每一条CQI修复记录,将其软件代码库通过git回退到修复记录前一个版本并使用sonarqube进行静态分析,在分析完成后将其软件代码库设置到修复后的版本再次使用sonarqube进行静态分析,通过两次静态分析获取该条CQI修复记录所修复的具体CQI。
[0030] 本实施例步骤S3)中提取其中与CQI修复相关的代码变更fix_hook的伪代码如图2的算法1(Algorithm 1)所示,其详细步骤包括:S3.1)针对当前CQI修复记录,输入对应的存储历史记录的变更日志文件logfile、修复版本号commit_SHA和CQI起始代码行数issue_line;
S3.2)通过匹配修复版本号commit_SHA和指定的源文件名来定位大概的修复区域(图2中第1行),然后对于修复区域中的每行单独代码进行扫描(图2中第2和6行),初始化变量hooks,在修复前版本和修复后版本中计算其代码行范围,最终将添加的代码行和删除的代码行加入到变量hooks中(图2中第19行),最终将变量hooks作为与CQI修复相关的代码变更fix_hook,输出与CQI修复相关的代码变更fix_hook及其相关的代码范围(图2中第24行)。
本实施例中从变更历史中提取修复区域的算法伪代码如图2所示,在git的变更日志文件(logfile)中有多个变更区域,我们将CQI代码周围的特定更改区域定义为修复区域(Fixing Hook)。参见图2,算法1通过匹配版本号和指定的源文件名来定位修复修复大概范围。然后,对于修复区域中的每行单独代码,算法在修复前版本和修复后版本中计算其代码行范围。算法第10-18行将添加的代码行和删除的代码行加入到Fix hooks变量中,最终算法返回修复区域代码(Fix hooks)以及其相关的代码范围。本实施例中通过对变更日志文件logfile进行分析,通过对其中每个单行变更的分析,如以“-”(deleted)开头则是删除,以“+”(added)开头则是增加,如若“+”和“-”组合出现则是修改,最终将添加的代码行和删除的代码行加入到变量hooks中,最终将变量hooks作为与CQI修复相关的代码变更fix_hook,输出与CQI修复相关的代码变更fix_hook及其相关的代码范围。
[0031] 本实施例中,步骤S4)的详细步骤包括:S4.1)对所有的CQI修复记录的代码进行分词;
S4.2)针对每一个CQI修复记录,将其代码根据分词后的结果解析成抽象语法树AST,然后将抽象语法树AST中每个节点node按照深度优先排列为向量序列,最后将其中与命名有关的节点进行抽象化处理,并对函数名等都进行抽象处理;在上述步骤S3)获取的CQI修复实例代码中包含了实际上有许多无意义的数据,例如变量命名,函数命名等,而这些数据对于后续修复模式的挖掘会产生干扰,因此我们需要对其进行抽象化处理。例如所有的变量命名被替换为“V”,“V0”,“V1”,以此类推。
[0032] S4.3)定义CQI修复模式中对抽象语法树AST进行变更的动作,并按照定义的动作提取各个CQI修复记录中在代码变更fix_hook处的代码变更动作序列FA,从而建立各个CQI修复记录对应的CQI修复模式FP:FP=(TYPE,CCTX,FA),其中TYPE表示CQI修复模式包括所修复的静态检查规则信息、CCTX表示CQI修复模式所适用的上下文环境信息、FA表示CQI修复模式代码变更处的代码变更动作序列,其中所适用的上下文环境信息CCTX是一个抽象语法树节点序列所构成的向量;S4.4)将所有的CQI修复模式FP组合得到修复模式库。
[0033] 本实施例中定义CQI修复模式中对抽象语法树AST进行变更的动作如下:替换动作UPD:表示在修复前版本代码中的抽象语法树AST 中的节点nodesrc 在修复后版本代码中的抽象语法树AST节点nodedst 所替换,格式为:(UPD nodesrc to nodedst )。
[0034] 移动动作MOV :表示在修复前版本代码中的抽象语法树AST 中的节点nodesrc 在修复后版本代码中被移动到某一个新位置,格式为:( MOV nodesrc).插入动作INS:表示修复后版本代码中的抽象语法树AST节点插入了新的节点nodedst ,格式为 (INS nodedst )。
[0035] 删除动作DEL:表示在修复前版本代码中的抽象语法树AST 中的节点nodesrc在修复后版本代码中的抽象语法树AST中被删除,格式为:(DEL nodesrc)。
[0036] 在GumTree等工具的定义中,DEL动作只能从根节点删除开始,一个节点一个节点的删除,对于处于同一区域的代码删除,其动作序列生成十分繁杂。本实施例中针对上述问题,还一种提取可合并的删除动作DEL的方法,用于将所有处于同一代码块的代码删除动作序列进行简化,本实施例提取可合并的删除动作DEL的方法的伪代码如图3的算法2(Algorithm 2)所示,Algorithm 2展示了从GumTree变更动作序列中给定位置开始提取可合并的DEL动作的算法。算法的输入包括action_list,它是包含CQI修复区域中所有代码变更动作的序列,start是给定我们算法开始执行的位置。在第1-4行初始化相关变量后,本算法首先过滤掉第5-10行中的2个特定条件:(1)起始位置的动作是action_list中的最后一个动作,(2)当前动作所操作的AST节点是叶节点,但下一个动作不是DEL。在这2个条件下,它们都直接返回当前动作序列而无需对DEL进行合并。在排除这2个条件后,对于每个动作,算法计算其AST节点是否是cur_action所处理节点的父节点。如果判断为真,则遍历delete_list,并删除其AST节点是cur_action所处理节点的子节点的所有DEL动作。总而言之,我们将下一个变更动作添加到delete_list,更新cur_action和cur。当完成action_list的遍历时,算法会返回delete_list,而它则记录了经过改进的DEL动作序列。
[0037] 最终,步骤S4.4)将所有的CQI修复模式FP组合得到修复模式库,本实施例中将修复模式库命名为Library of CQI Fix Patterns。对于待修复的CQI,我们首先根据其所违反的静态检查规则信息,从之前得到的Library of CQI Fix Patterns中初步匹配出规则相同的修复模式,然后使用Word2Vec方法,将待修复的CQI代码以及匹配结果中修复模式代码向量化,然后计算2个向量的余弦值。余弦值的取值范围为0-1,越接近1表明2个向量越相似,即表明待修复的CQI代码与所匹配到的修复模式代码上下文环境越相似。由此,根据余弦值有大到小取前top5,即为匹配结果。然后根据匹配到的CQI修复模式中的代码变更动作序列,对待修复的CQI代码进行修改。完成修改,使用SonarQube工具验证CQI已被修复后,将修复的补丁推荐给用户,即完成CQI修复补丁推荐。
[0038] 本实施例中,最终挖掘得到的修复模式如图4所示。本发明选取了收集到的数量排名前20的CQI,对于每条CQI规则,我们随机选择5个未修复的样本文件进行修复测试,CR@N指对于前N的匹配的CQI修复模式所进行修复的正确率,应用所挖掘到的欧式对CQI的修复效果如图5所示。因此,本实施例基于代码变更历史的软件代码质量问题自动修复方法可以有效的自动化修复代码质量问题,降低软件开发的维护成本,提高开发者的开发效率。
[0039] 此外,本实施例还提供一种基于代码变更历史的软件代码质量问题自动修复系统,包括计算机设备,该计算机设备被编程或配置以执行前述基于代码变更历史的软件代码质量问题自动修复方法的步骤,或者该计算机设备的存储介质上存储有被编程或配置以执行前述基于代码变更历史的软件代码质量问题自动修复方法的计算机程序。
[0040] 此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行前述基于代码变更历史的软件代码质量问题自动修复方法的计算机程序。
[0041] 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈