一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

代码缺陷修复方案推荐方法、装置、设备及存储介质与流程

2022-06-22 17:50:12 来源:中国专利 TAG:


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.通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得所述代码特征信息中与所述预设缺陷匹配模型匹配的特征信息及所述特征信息对应的特征匹配分值;
50.将所述特征匹配分值大于预设匹配阈值的特征信息作为缺陷特征信息,并将所述缺陷特征信息对应的缺陷信息作为代码缺陷信息。
51.此外,为实现上述目的,本发明还提出一种代码缺陷修复方案推荐装置,所述代码缺陷修复方案推荐装置包括以下模块:
52.特征提取模块,用于对待修复代码进行特征提取,以获得代码特征信息;
53.缺陷匹配模块,用于通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得代码缺陷信息及缺陷特征信息;
54.方案匹配模块,用于将所述缺陷特征信息输入预设方案匹配模型进行匹配,以确定所述代码缺陷信息对应的若干个代码修复方案及各个代码修复方案对应的方案使用率;
55.方案推荐模块,用于向用户展示所述代码缺陷信息,并基于所述方案使用率,向所述用户推荐所述代码修复方案。
56.可选的,所述特征提取模块,还用于获取缺陷修复样本集;获取所述缺陷修复样本集中的各个缺陷修复样本对应的缺陷特征信息、代码缺陷信息及代码修复方案;基于所述缺陷特征信息、所述代码缺陷信息及所述代码修复方案对所述缺陷修复样本集中的各个缺陷修复样本进行统计,以获得预设方案匹配规则;基于所述预设方案匹配规则构建预设方案匹配模型。
57.可选的,所述特征提取模块,还用于获取缺陷修复数据集;对所述缺陷修复数据集中的缺陷修复数据进行特征提取,以获得缺陷特征信息及修复代码特征信息;根据所述缺陷特征信息确定代码缺陷信息,并根据所述修复代码特征信息确定代码修复方案;根据所述缺陷修复数据集、所述缺陷特征信息、修复代码特征信息、所述代码缺陷信息及所述代码修复方案构建缺陷修复样本集。
processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
73.本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
74.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及代码缺陷修复方案推荐程序。
75.在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在代码缺陷修复方案推荐设备中,所述电子设备通过处理器1001调用存储器1005中存储的代码缺陷修复方案推荐程序,并执行本发明实施例提供的代码缺陷修复方案推荐方法。
76.本发明实施例提供了一种代码缺陷修复方案推荐方法,参照图2,图2为本发明一种代码缺陷修复方案推荐方法第一实施例的流程示意图。
77.本实施例中,所述代码缺陷修复方案推荐方法包括以下步骤:
78.步骤s10:对待修复代码进行特征提取,以获得代码特征信息;
79.需要说明的是,本实施例的执行主体为所述代码缺陷修复方案推荐设备,所述代码缺陷修复方案推荐设备可以是个人电脑、服务器等电子设备,也可以为实现相同或相似功能的设备,本实施例对此不加以限制,在本实施例及下述各实施例中,以代码缺陷修复方案推荐设备为例对本发明代码缺陷修复方案推荐方法进行说明。
80.需要说明的是,待修复代码可以为可能存在代码缺陷,需要对存在的代码缺陷进行修复的软件代码。代码特征信息可以为对待修复代码进行特征提取获得的待修复代码的特征信息,例如:代码循环、对象调用、对象销毁等信息。
81.在实际使用中,可以在用户端设置代码采集插件,例如phpstorm插件,在接收到用户代码缺陷扫描指令时将代码传输至缺陷修复方案推荐设备作为待修复代码进行特征提取。
82.进一步地,为了降低变量名、方法名、类名等数据对特征提取过程的干扰,本实施例步骤s10,可以包括:
83.对所述待修复代码进行扫描,以获得代码抽象语法树;对所述代码抽象语法树进行特征提取,以获得代码特征信息。
84.需要说明的是,抽象语法树(abstract syntax tree,ast)是对源代码语法结构的一种抽象表示,抽象语法树并不会表示出真实语法出现的每一个细节,因此,将代码转化为抽象语法树,可以屏蔽变量名、方法名、类名等自定义信息对特征提取的干扰。代码抽象语法树可以是将待修复代码进行扫描转换得到的抽象语法树。
85.步骤s20:通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得代码
缺陷信息及缺陷特征信息;
86.需要说明的是,代码缺陷信息可以包括代码缺陷问题类别、代码缺陷原因等信息,例如:缺陷问题类别:空指针、内存溢出等,代码缺陷原因:未进行对象校验、对象未回收等。缺陷特征信息可以为代码缺陷信息对应的特征信息,预设缺陷匹配模型是根据大量代码缺陷样本训练得到的神经网络模型,通过预设缺陷匹配模型可以对代码特征信息进行扫描,以确定代码特征信息中是否存在缺陷特征信息,并获取缺陷特征信息对应的代码缺陷信息。代码缺陷样本可以包含缺陷代码、缺陷代码特征等信息。
87.在实际使用中,可以通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得所述代码特征信息中与所述预设缺陷匹配模型匹配的特征信息及所述特征信息对应的特征匹配分值;将所述特征匹配分值大于预设匹配阈值的特征信息作为缺陷特征信息,并将所述缺陷特征信息对应的缺陷信息作为代码缺陷信息。
88.需要说明的是,预设匹配阈值可以根据实际需要进行设置。与预设缺陷匹配模型匹配的特征信息可以为代码特征信息中经过预设缺陷匹配模型分析认定与代码缺陷相似的特征信息,特征信息对应的缺陷信息可以为特征信息可能存在的代码缺陷的缺陷问题类别、代码缺陷原因等信息。
89.例如:设置预设匹配阈值为80,将待修复代码的代码特征信息输入预设缺陷匹配模型进行匹配,获得预设缺陷匹配模型输出的结果,匹配成功的特征信息有a、b、c、d、e共5个,对应的特征匹配分值分别为90、81、83、60、68,则可以将特征信息a、b、c作为缺陷特征信息,并获取缺陷特征信息对应的缺陷信息作为代码缺陷信息。
90.步骤s30:将所述缺陷特征信息输入预设方案匹配模型进行匹配,以确定所述代码缺陷信息对应的若干个代码修复方案及各个代码修复方案对应的方案使用率;
91.需要说明的是,预设方案匹配模型可以是基于预设方案匹配规则构建的模型,将缺陷特征信息输入预设方案匹配模型可以根据缺陷特征信息进行匹配,以获得缺陷特征信息对应的若干个代码修复方案及代码修复方案对应的方案使用率。预设方案匹配规则可以是根据采集的各个缺陷修复样本进行统计得到的。缺陷修复样本可以是根据缺陷代码、缺陷修复代码及修复描述文案等数据构建的数据样本。方案使用率可以是根据统计得到的该代码修复方案被采用的百分比,例如:对同一个代码缺陷信息采集的缺陷修复样本共有100个,经统计有a、b、c共3个代码修复方案,其中30个缺陷修复样本采用的修复方案为a,其中20个缺陷修复样本采用的修复方案为b,其中50个缺陷修复样本采用的修复方案为c,则代码修复方案a、b、c对应的方案使用率分别为30%、20%、50%。
92.步骤s40:向用户展示所述代码缺陷信息,并基于所述方案使用率,向所述用户推荐所述代码修复方案。
93.可以理解的是,在获取到代码缺陷信息之后可以向用户进行展示,并对应的展示各个代码缺陷信息对应的代码修复方案及方案使用率。
94.例如:确定的代码缺陷信息有a、b,其中代码缺陷信息a对应的代码修复方案为a1、a2、a3,代码缺陷信息b对应的修复方案为b1、b2、b3、b4,则可以向用户展示a、b两个代码缺陷信息,并在代码缺陷信息展示之后提示两个代码缺陷信息对应的代码修复方案及各个代码修复方案的方案使用率以供用户选择。
95.进一步地,为了便于用户进行选择,本实施例所述步骤s40,可以包括:
96.向用户展示所述代码缺陷信息;根据所述方案使用率由大到小对所述代码修复方案进行优先级排序,以获得排序结果;根据所述排序结果向所述用户推荐所述代码修复方案。
97.可以理解的是,方案使用率越高可以说明该代码修复方案的更加的优质,可以更好的解决代码缺陷,因此,可以根据方案使用率对代码修复方案进行优先级排序,再根据排序结果向用户展示并推荐代码修复方案,可以令用户快速发现优质的代码修复方案。
98.进一步地,为了便于用户理解如何进行代码修复,本实施例步骤s40之后,还可以包括:
99.在接收到所述用户基于所述代码修复方案输入的方案选择指令时,根据所述方案选择指令从所述代码修复方案中选取目标代码修复方案;根据所述目标代码修复方案对所述待修复代码进行代码修复,并向所述用户展示代码修复结果。
100.可以理解的是,在接收到用户输入的方案选择指令时,可以根据方案选择指令确定目标代码修复方案,根据目标代码修复方案对待修复代码进行代码修复,生成最终的代码修复结果,并将代码修复结果展示给用户进行确认,用户可根据代码修复结果判断目标代码修复方案是否适用。
101.在实际使用中,在向用户展示代码修复结果之后,还可以在接收到所述用户基于所述代码修复结果输入的修复确认指令时,将所述代码修复结果发送至所述用户的终端,以使所述终端根据所述代码修复结果进行本地代码修复。
102.可以理解的是,用户在查看代码修复结果之后,若根据代码修复结果判断目标代码修复方案适用,则可以输入修复确认指令,代码缺陷修复方案推荐设备在接收到修复确认指令时,可以将代码修复结果发送至用户使用的终端,终端在接收到代码修复结果时就可以根据代码修复结果对用户终端本地代码进行代码修复,完成代码修复工作。
103.本实施例通过对待修复代码进行特征提取,以获得代码特征信息;通过预设缺陷匹配模型对代码特征信息进行特征匹配,以获得代码缺陷信息及缺陷特征信息;将缺陷特征信息输入预设方案匹配模型进行匹配,以确定代码缺陷信息对应的若干个代码修复方案及各个代码修复方案对应的方案使用率;向用户展示代码缺陷信息,并基于方案使用率,向所述用户推荐代码修复方案。由于是根据代码特征信息确定代码缺陷信息及缺陷特征信息,可以快速发现代码缺陷,再由缺陷特征信息匹配代码修复方案,并向用户推荐代码修复方案,并便于用户快速选择合适的方案进行代码修复。
104.参考图3,图3为本发明一种代码缺陷修复方案推荐方法第二实施例的流程示意图。
105.基于上述第一实施例,本实施例代码缺陷修复方案推荐方法在所述步骤s10之前,还包括:
106.步骤s01:获取缺陷修复样本集;
107.需要说明的是,缺陷修复样本集可以是由多个缺陷修复样本组合构建的集合。
108.进一步地,为了构建缺陷修复样本集,本实施例步骤s01之前,还可以包括:
109.获取缺陷修复数据集;对所述缺陷修复数据集中的缺陷修复数据进行特征提取,以获得缺陷特征信息及修复代码特征信息;根据所述缺陷特征信息确定代码缺陷信息,并根据所述修复代码特征信息确定代码修复方案;根据所述缺陷修复数据集、所述缺陷特征
信息、修复代码特征信息、所述代码缺陷信息及所述代码修复方案构建缺陷修复样本集。
110.需要说明的是,缺陷修复数据集可以是由多个缺陷修复数据组合构建的集合。缺陷修复数据可以是采集的缺陷代码修复数据,可以包括缺陷代码、修复代码、修复文案等数据。缺陷特征信息可以是对缺陷代码进行特征提取获得的特征信息,修复代码特征信息可以是对修复代码进行特征提取获得的特征信息。
111.可以理解的是,可以根据缺陷修复数据对应的缺陷特征信息、修复代码特征信息、代码缺陷信息及代码修复方案构建缺陷修复样本,而后将构建的多个缺陷修复样本进行组合,即可获得缺陷修复样本集。
112.在实际使用中,可以所述根据预设特征分类器对所述缺陷特征信息进行特征分类,以获得各个缺陷修复样本对应的代码缺陷信息;根据所述预设特征分类器对所述修复代码特征信息进行特征分类,以获得各个缺陷修复样本对应的代码修复方案。
113.需要说明的是,预设特征分类器可以是朴素贝叶斯分类器等特征分类器,通过预设特征分类器可以对缺陷特征信息进行分类,确定对应的缺陷缺陷问题类别、代码缺陷原因等信息,以获得代码缺陷信息。通过预设特征分类器可以对修复代码特征信息进行分类,确定修复代码的修复手段,以获得对应的代码修复方案。
114.步骤s02:获取所述缺陷修复样本集中的各个缺陷修复样本对应的缺陷特征信息、代码缺陷信息及代码修复方案;
115.可以理解的是,缺陷修复样本是根据缺陷特征信息、修复代码特征信息、代码缺陷信息及代码修复方案构建的,因此,可以直接对缺陷修复样本进行解析,获得缺陷修复样本对应的缺陷特征信息、代码缺陷信息及代码修复方案。
116.步骤s03:基于所述缺陷特征信息、所述代码缺陷信息及所述代码修复方案对所述缺陷修复样本集中的各个缺陷修复样本进行统计,以获得预设方案匹配规则;
117.需要说明的是,预设方案匹配规则中可以包含多个代码缺陷信息,各个代码缺陷信息可以对应有缺陷特征信息及多个代码修复方案,每个代码修复方案都有对应的方案使用率。
118.例如:预设方案匹配规则中可以包含a、b、c等多个代码缺陷信息,以其中代码缺陷信息a为例,代码缺陷信息a对应的缺陷特征信息为qa,对应的代码修复方案可以有f
a1
、f
a2
、f
a3
共3个,各个代码修复方案对应的方案使用率分别为20%、30%、50%。
119.步骤s04:基于所述预设方案匹配规则构建预设方案匹配模型。
120.可以理解的是,可以基于预设方案匹配规则构建预设方案匹配模型,在预设方案匹配模型构建完成之后,可以投入使用,将缺陷特征信息输入至预设方案匹配模型进行分析,即可确定缺陷特征信息对应的若干个代码修复方案及各个代码修复方案对应的方案使用率。
121.进一步地,为了保证模型分析准确率,本实施例步骤s04之后,还可以包括:
122.获取缺陷验证样本集,并获取所述缺陷验证样本集对应的基于所述预设方案匹配规则确定的标准方案匹配结果集;将所述缺陷验证样本集中的各个缺陷验证样本输入所述预设方案匹配模型中进行分析,以获得方案匹配结果集;根据所述方案匹配结果集及所述标准方案匹配结果集确定方案匹配误差分值;在所述方案匹配误差分值大于预设误差阈值时,返回所述基于所述预设方案匹配规则构建预设方案匹配模型的步骤。
123.需要说明的是,缺陷验证样本集可以是由多个缺陷验证样本构建的集合,缺陷验证样本中可以包含有缺陷代码及缺陷特征信息等信息,标准方案匹配结果集可以是由多个标准方案匹配结果组合构建的集合,标准方案匹配结果可以是将缺陷验证样本中缺陷特征信息与预设方案匹配规则进行匹配得到的匹配结果,匹配结果可以包括代码修复方案及各个代码修复方案对应的方案使用率。方案匹配结果集可以是由多个方案匹配结果组合构建的集合,方案匹配结果可以是将缺陷验证样本的缺陷特征信息输入预设方案匹配模型中得到的匹配结果。方案匹配误差分值可以是通过预设误差算法根据标准方案匹配结果集及方案匹配结果集计算得到的用于表示模型匹配误差度的量化分值。预设误差算法可以是差值平方和等误差算法。预设误差阈值可以根据实际需要进行设置。
124.本实施例通过获取缺陷修复样本集;获取所述缺陷修复样本集中的各个缺陷修复样本对应的缺陷特征信息、代码缺陷信息及代码修复方案;基于所述缺陷特征信息、所述代码缺陷信息及所述代码修复方案对所述缺陷修复样本集中的各个缺陷修复样本进行统计,以获得预设方案匹配规则;基于所述预设方案匹配规则构建预设方案匹配模型;并在预设方案匹配模型构建之后采用预设缺陷验证样本集验证预设方案匹配模型的匹配结果是否准确,在结果不准确时重新进行模型构建,在结果准确时才投入使用,可以保证在根据缺陷特征信息匹配代码修复方案时的准确率。
125.参考图4,图4为本发明一种代码缺陷修复方案推荐方法第三实施例的流程示意图。
126.基于上述第一实施例,本实施例代码缺陷修复方案推荐方法在所述步骤s10之前,还包括:
127.步骤s01':获取代码缺陷样本集;
128.需要说明的是,代码缺陷样本集可以是由多个代码缺陷样本组合构建而成的集合,代码缺陷样本可以包含缺陷代码、代码缺陷信息及缺陷特征信息等数据。
129.步骤s02':根据所述代码缺陷样本集对初始神经网络模型进行训练,以获得预设缺陷匹配模型。
130.可以理解的是,通过代码缺陷样本集对初始神经网络模型进行训练,获得预设缺陷匹配模型,在预设缺陷匹配模型训练完成之后,可以将待修复代码的代码特征信息输入预设预设缺陷匹配模型中,预设缺陷匹配模型可以对代码特征信息进行分析,确定是否存在代码缺陷,在存在代码缺陷时将代码缺陷对应的代码缺陷信息及缺陷特征信息输出。
131.进一步地,为了验证预设缺陷匹配模型是否训练完成,本实施例步骤s02'之后,还可以包括:
132.获取缺陷验证样本集及所述缺陷验证样本集对应的标准缺陷检测结果集;将所述缺陷验证样本集中各个缺陷验证样本输入所述预设缺陷匹配模型中进行匹配,以获得缺陷检测结果集;根据所述缺陷检测结果集及所述标准缺陷检测结果集确定缺陷检测误差分值;在所述缺陷检测误差分值大于预设检测误差阈值时,返回所述获取代码缺陷样本集的步骤。
133.需要说明的是,缺陷验证样本集可以是由多个缺陷验证样本构建的集合,缺陷验证样本可以是含有代码缺陷的代码样本。标准缺陷检测结果集可以是由多个标准缺陷检测结果构建的集合。标准缺陷检测结果可以是预先对缺陷验证样本对应的代码特征信息进行
检测得到的检测结果,检测结果可以包括代码缺陷信息及缺陷特征信息。缺陷检测结果集可以由多个缺陷检测结果构建的集合,缺陷检测结果可以是将缺陷验证样本对应的代码特征信息输入预设缺陷匹配模型进行分析得到的检测结果。缺陷检测误差分值可以是通过预设误差算法根据标准缺陷检测结果集及缺陷检测结果集计算得到的用于表示模型缺陷匹配误差度的量化分值。预设检测误差阈值看根据实际情况进行设置。
134.本实施例通过获取代码缺陷样本集;根据所述代码缺陷样本集对初始神经网络模型进行训练,以获得预设缺陷匹配模型;且在预设缺陷匹配模型训练之后采用缺陷验证样本集验证预设缺陷匹配模型对代码中的缺陷识别是否准确,在缺陷识别不准确时重新进行模型训练,在缺陷识别准确时才投入使用,可以保证根据待修复代码的代码特征信息确定代码缺陷信息及缺陷特征信息的准确率。
135.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有代码缺陷修复方案推荐程序,所述代码缺陷修复方案推荐程序被处理器执行时实现如上文所述的代码缺陷修复方案推荐方法的步骤。
136.参照图5,图5为本发明代码缺陷修复方案推荐装置第一实施例的结构框图。
137.如图5所示,本发明实施例提出的代码缺陷修复方案推荐装置包括:
138.特征提取模块501,用于对待修复代码进行特征提取,以获得代码特征信息;
139.缺陷匹配模块502,用于通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得代码缺陷信息及缺陷特征信息;
140.方案匹配模块503,用于将所述缺陷特征信息输入预设方案匹配模型进行匹配,以确定所述代码缺陷信息对应的若干个代码修复方案及各个代码修复方案对应的方案使用率;
141.方案推荐模块504,用于向用户展示所述代码缺陷信息,并基于所述方案使用率,向所述用户推荐所述代码修复方案。
142.本实施例通过对待修复代码进行特征提取,以获得代码特征信息;通过预设缺陷匹配模型对代码特征信息进行特征匹配,以获得代码缺陷信息及缺陷特征信息;将缺陷特征信息输入预设方案匹配模型进行匹配,以确定代码缺陷信息对应的若干个代码修复方案及各个代码修复方案对应的方案使用率;向用户展示代码缺陷信息,并基于方案使用率,向所述用户推荐代码修复方案。由于是根据代码特征信息确定代码缺陷信息及缺陷特征信息,可以快速发现代码缺陷,再由缺陷特征信息匹配代码修复方案,并向用户推荐代码修复方案,并便于用户快速选择合适的方案进行代码修复。
143.进一步地,所述特征提取模块501,还用于获取缺陷修复样本集;获取所述缺陷修复样本集中的各个缺陷修复样本对应的缺陷特征信息、代码缺陷信息及代码修复方案;基于所述缺陷特征信息、所述代码缺陷信息及所述代码修复方案对所述缺陷修复样本集中的各个缺陷修复样本进行统计,以获得预设方案匹配规则;基于所述预设方案匹配规则构建预设方案匹配模型。
144.进一步地,所述特征提取模块501,还用于获取缺陷修复数据集;对所述缺陷修复数据集中的缺陷修复数据进行特征提取,以获得缺陷特征信息及修复代码特征信息;根据所述缺陷特征信息确定代码缺陷信息,并根据所述修复代码特征信息确定代码修复方案;根据所述缺陷修复数据集、所述缺陷特征信息、修复代码特征信息、所述代码缺陷信息及所
述代码修复方案构建缺陷修复样本集。
145.进一步地,所述特征提取模块501,还用于根据预设特征分类器对所述缺陷特征信息进行特征分类,以获得各个缺陷修复样本对应的代码缺陷信息;根据所述预设特征分类器对所述修复代码特征信息进行特征分类,以获得各个缺陷修复样本对应的代码修复方案;
146.进一步地,所述特征提取模块501,还用于获取缺陷验证样本集,并获取所述缺陷验证样本集对应的基于所述预设方案匹配规则确定的标准方案匹配结果集;将所述缺陷验证样本集中的各个缺陷验证样本输入所述预设方案匹配模型中进行分析,以获得方案匹配结果集;根据所述方案匹配结果集及所述标准方案匹配结果集确定方案匹配误差分值;在所述方案匹配误差分值大于预设误差阈值时,返回所述基于所述预设方案匹配规则构建预设方案匹配模型的步骤。
147.进一步地,所述特征提取模块501,还用于获取代码缺陷样本集;根据所述代码缺陷样本集对初始神经网络模型进行训练,以获得预设缺陷匹配模型。
148.进一步地,所述特征提取模块501,还用于获取缺陷验证样本集及所述缺陷验证样本集对应的标准缺陷检测结果集;将所述缺陷验证样本集中各个缺陷验证样本输入所述预设缺陷匹配模型中进行匹配,以获得缺陷检测结果集;根据所述缺陷检测结果集及所述标准缺陷检测结果集确定缺陷检测误差分值;在所述缺陷检测误差分值大于预设检测误差阈值时,返回所述获取代码缺陷样本集的步骤。
149.进一步地,所述方案推荐模块504,还用于在接收到所述用户基于所述代码修复方案输入的方案选择指令时,根据所述方案选择指令从所述代码修复方案中选取目标代码修复方案;根据所述目标代码修复方案对所述待修复代码进行代码修复,并向所述用户展示代码修复结果。
150.进一步地,所述方案推荐模块504,还用于在接收到所述用户基于所述代码修复结果输入的修复确认指令时,将所述代码修复结果发送至所述用户的终端,以使所述终端根据所述代码修复结果进行本地代码修复。
151.进一步地,所述特征提取模块501,还用于对所述待修复代码进行扫描,以获得代码抽象语法树;对所述代码抽象语法树进行特征提取,以获得代码特征信息。
152.进一步地,所述方案推荐模块504,还用于向用户展示所述代码缺陷信息;根据所述方案使用率由大到小对所述代码修复方案进行优先级排序,以获得排序结果;根据所述排序结果向所述用户推荐所述代码修复方案。
153.进一步地,所述缺陷匹配模块502,还用于通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得所述代码特征信息中与所述预设缺陷匹配模型匹配的特征信息及所述特征信息对应的特征匹配分值;将所述特征匹配分值大于预设匹配阈值的特征信息作为缺陷特征信息,并将所述缺陷特征信息对应的缺陷信息作为代码缺陷信息。
154.应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
155.需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
156.另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的代码缺陷修复方案推荐方法,此处不再赘述。
157.此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
158.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
159.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
160.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
161.本发明公开了a1、一种代码缺陷修复方案推荐方法,所述代码缺陷修复方案推荐方法包括以下步骤:
162.对待修复代码进行特征提取,以获得代码特征信息;
163.通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得代码缺陷信息及缺陷特征信息;
164.将所述缺陷特征信息输入预设方案匹配模型进行匹配,以确定所述代码缺陷信息对应的若干个代码修复方案及各个代码修复方案对应的方案使用率;
165.向用户展示所述代码缺陷信息,并基于所述方案使用率,向所述用户推荐所述代码修复方案。
166.a2、如a1所述的代码缺陷修复方案推荐方法,所述对待修复代码进行特征提取,以获得代码特征信息的步骤之前,还包括:
167.获取缺陷修复样本集;
168.获取所述缺陷修复样本集中的各个缺陷修复样本对应的缺陷特征信息、代码缺陷信息及代码修复方案;
169.基于所述缺陷特征信息、所述代码缺陷信息及所述代码修复方案对所述缺陷修复样本集中的各个缺陷修复样本进行统计,以获得预设方案匹配规则;
170.基于所述预设方案匹配规则构建预设方案匹配模型。
171.a3、如a2所述的代码缺陷修复方案推荐方法,所述获取缺陷修复样本集的步骤之前,包括:
172.获取缺陷修复数据集;
173.对所述缺陷修复数据集中的缺陷修复数据进行特征提取,以获得缺陷特征信息及
修复代码特征信息;
174.根据所述缺陷特征信息确定代码缺陷信息,并根据所述修复代码特征信息确定代码修复方案;
175.根据所述缺陷修复数据集、所述缺陷特征信息、修复代码特征信息、所述代码缺陷信息及所述代码修复方案构建缺陷修复样本集。
176.a4、如a3所述的代码缺陷修复方案推荐方法,所述根据所述缺陷特征信息确定代码缺陷信息,并根据所述修复代码特征信息确定代码修复方案的步骤,包括:
177.根据预设特征分类器对所述缺陷特征信息进行特征分类,以获得各个缺陷修复样本对应的代码缺陷信息;
178.根据所述预设特征分类器对所述修复代码特征信息进行特征分类,以获得各个缺陷修复样本对应的代码修复方案;
179.a5、如a2所述的代码缺陷修复方案推荐方法,所述基于所述预设方案匹配规则构建预设方案匹配模型的步骤之后,还包括:
180.获取缺陷验证样本集,并获取所述缺陷验证样本集对应的基于所述预设方案匹配规则确定的标准方案匹配结果集;
181.将所述缺陷验证样本集中的各个缺陷验证样本输入所述预设方案匹配模型中进行分析,以获得方案匹配结果集;
182.根据所述方案匹配结果集及所述标准方案匹配结果集确定方案匹配误差分值;
183.在所述方案匹配误差分值大于预设误差阈值时,返回所述基于所述预设方案匹配规则构建预设方案匹配模型的步骤。
184.a6、如a1所述的代码缺陷修复方案推荐方法,所述对待修复代码进行特征提取,以获得代码特征信息的步骤之前,还包括:
185.获取代码缺陷样本集;
186.根据所述代码缺陷样本集对初始神经网络模型进行训练,以获得预设缺陷匹配模型。
187.a7、如a6所述的代码缺陷修复方案推荐方法,所述根据所述代码缺陷样本集对初始神经网络模型进行训练,以获得预设缺陷匹配模型的步骤之后,还包括:
188.获取缺陷验证样本集及所述缺陷验证样本集对应的标准缺陷检测结果集;
189.将所述缺陷验证样本集中各个缺陷验证样本输入所述预设缺陷匹配模型中进行匹配,以获得缺陷检测结果集;
190.根据所述缺陷检测结果集及所述标准缺陷检测结果集确定缺陷检测误差分值;
191.在所述缺陷检测误差分值大于预设检测误差阈值时,返回所述获取代码缺陷样本集的步骤。
192.a8、如a1所述的代码缺陷修复方案推荐方法,所述向用户展示所述代码缺陷信息,并基于所述方案使用率,向所述用户推荐所述代码修复方案的步骤之后,还包括:
193.在接收到所述用户基于所述代码修复方案输入的方案选择指令时,根据所述方案选择指令从所述代码修复方案中选取目标代码修复方案;
194.根据所述目标代码修复方案对所述待修复代码进行代码修复,并向所述用户展示代码修复结果。
195.a9、如a8所述的代码缺陷修复方案推荐方法,所述根据所述目标代码修复方案对所述待修复代码进行代码修复,并向所述用户展示代码修复结果的步骤之后,还包括:
196.在接收到所述用户基于所述代码修复结果输入的修复确认指令时,将所述代码修复结果发送至所述用户的终端,以使所述终端根据所述代码修复结果进行本地代码修复。
197.a10、如a1-a9中任一项所述的代码缺陷修复方案推荐方法,所述对待修复代码进行特征提取,以获得代码特征信息的步骤,包括:
198.对所述待修复代码进行扫描,以获得代码抽象语法树;
199.对所述代码抽象语法树进行特征提取,以获得代码特征信息。
200.a11、如a1-a9中任一项所述的代码缺陷修复方案推荐方法,所述向用户展示所述代码缺陷信息,并基于所述方案使用率,向所述用户推荐所述代码修复方案的步骤,包括:
201.向用户展示所述代码缺陷信息;
202.根据所述方案使用率由大到小对所述代码修复方案进行优先级排序,以获得排序结果;
203.根据所述排序结果向所述用户推荐所述代码修复方案。
204.a12、如a1-a9中任一项所述的代码缺陷修复方案推荐方法,所述通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得代码缺陷信息及缺陷特征信息的步骤,包括:
205.通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得所述代码特征信息中与所述预设缺陷匹配模型匹配的特征信息及所述特征信息对应的特征匹配分值;
206.将所述特征匹配分值大于预设匹配阈值的特征信息作为缺陷特征信息,并将所述缺陷特征信息对应的缺陷信息作为代码缺陷信息。
207.本发明公开了b13、一种代码缺陷修复方案推荐装置,所述代码缺陷修复方案推荐装置包括以下模块:
208.特征提取模块,用于对待修复代码进行特征提取,以获得代码特征信息;
209.缺陷匹配模块,用于通过预设缺陷匹配模型对所述代码特征信息进行特征匹配,以获得代码缺陷信息及缺陷特征信息;
210.方案匹配模块,用于将所述缺陷特征信息输入预设方案匹配模型进行匹配,以确定所述代码缺陷信息对应的若干个代码修复方案及各个代码修复方案对应的方案使用率;
211.方案推荐模块,用于向用户展示所述代码缺陷信息,并基于所述方案使用率,向所述用户推荐所述代码修复方案。
212.b14、如b13所述的代码缺陷修复方案推荐装置,所述特征提取模块,还用于获取缺陷修复样本集;获取所述缺陷修复样本集中的各个缺陷修复样本对应的缺陷特征信息、代码缺陷信息及代码修复方案;基于所述缺陷特征信息、所述代码缺陷信息及所述代码修复方案对所述缺陷修复样本集中的各个缺陷修复样本进行统计,以获得预设方案匹配规则;基于所述预设方案匹配规则构建预设方案匹配模型。
213.b15、如b14所述的代码缺陷修复方案推荐装置,所述特征提取模块,还用于获取缺陷修复数据集;对所述缺陷修复数据集中的缺陷修复数据进行特征提取,以获得缺陷特征信息及修复代码特征信息;根据所述缺陷特征信息确定代码缺陷信息,并根据所述修复代码特征信息确定代码修复方案;根据所述缺陷修复数据集、所述缺陷特征信息、修复代码特
征信息、所述代码缺陷信息及所述代码修复方案构建缺陷修复样本集。
214.b16、如b15所述的代码缺陷修复方案推荐装置,所述特征提取模块,还用于根据预设特征分类器对所述缺陷特征信息进行特征分类,以获得各个缺陷修复样本对应的代码缺陷信息;根据所述预设特征分类器对所述修复代码特征信息进行特征分类,以获得各个缺陷修复样本对应的代码修复方案;
215.b17、如b14所述的代码缺陷修复方案推荐装置,所述特征提取模块,还用于获取缺陷验证样本集,并获取所述缺陷验证样本集对应的基于所述预设方案匹配规则确定的标准方案匹配结果集;将所述缺陷验证样本集中的各个缺陷验证样本输入所述预设方案匹配模型中进行分析,以获得方案匹配结果集;根据所述方案匹配结果集及所述标准方案匹配结果集确定方案匹配误差分值;在所述方案匹配误差分值大于预设误差阈值时,返回所述基于所述预设方案匹配规则构建预设方案匹配模型的步骤。
216.b18、如b13所述的代码缺陷修复方案推荐装置,所述特征提取模块,还用于获取代码缺陷样本集;根据所述代码缺陷样本集对初始神经网络模型进行训练,以获得预设缺陷匹配模型。
217.本发明公开了c19、一种代码缺陷修复方案推荐设备,所述代码缺陷修复方案推荐设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的代码缺陷修复方案推荐程序,所述代码缺陷修复方案推荐程序被所述处理器执行时实现如上所述的代码缺陷修复方案推荐方法的步骤。
218.本发明公开了d20、一种计算机可读存储介质,所述计算机可读存储介质上存储有代码缺陷修复方案推荐程序,所述代码缺陷修复方案推荐程序执行时实现如上所述的代码缺陷修复方案推荐方法的步骤。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献