CN114185769A - 基于双向长短期记忆神经网络的软件缺陷预测方法及终端 - Google Patents
基于双向长短期记忆神经网络的软件缺陷预测方法及终端 Download PDFInfo
- Publication number
- CN114185769A CN114185769A CN202111384223.9A CN202111384223A CN114185769A CN 114185769 A CN114185769 A CN 114185769A CN 202111384223 A CN202111384223 A CN 202111384223A CN 114185769 A CN114185769 A CN 114185769A
- Authority
- CN
- China
- Prior art keywords
- code
- syntax tree
- abstract syntax
- defect prediction
- features
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000007547 defect Effects 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 19
- 230000002457 bidirectional effect Effects 0.000 title claims abstract description 13
- 230000015654 memory Effects 0.000 title claims description 16
- 230000008859 change Effects 0.000 claims abstract description 46
- 239000013598 vector Substances 0.000 claims abstract description 25
- 238000012549 training Methods 0.000 claims abstract description 13
- 230000004927 fusion Effects 0.000 claims abstract description 12
- 238000012216 screening Methods 0.000 claims abstract description 11
- 238000005259 measurement Methods 0.000 claims abstract description 8
- 230000007787 long-term memory Effects 0.000 claims abstract description 5
- 230000006403 short-term memory Effects 0.000 claims abstract description 5
- 239000000284 extract Substances 0.000 claims abstract description 4
- 230000006870 function Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 238000007477 logistic regression Methods 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 238000007781 pre-processing Methods 0.000 claims description 2
- 230000002950 deficient Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000004576 sand Substances 0.000 description 2
- 241000282836 Camelus dromedarius Species 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于双向长短期记忆神经网络的软件缺陷预测方法及终端,该方法利用双向长短期神经网络从源代码文件的抽象语法树以及源代码对应不同版本之间的代码变更信息,筛选、提取抽象语法树点节序列和代码变更节点序列,连接构建组合序列,组合序列输入到Word2Vec词嵌入模型编码成词向量,并且利用PROMISE库提供的传统度量特征,结合门控融合策略融合语义特征和传统特征构成组合特征,将组合特征和对应标签输入到分类器训练缺陷预测模型。本发明方法从源代码抽象语法树和代码变更数据中提取更加丰富的代码语义特征,结合PROMISE存储库提供的传统特征,更好帮助分类器模型学习语义特征,得到更加精确的缺陷预测结果。
Description
技术领域
本发明属于文件级软件缺陷预测技术领域,具体涉及一种基于双向长短期记忆神经网络的软件缺陷预测方法及终端。
背景技术
随着软件规模和复杂性的不断增加,近些年,软件缺陷预测技术受到了广泛的关注。缺陷预测模型给出的结果可以帮助开发人员或测试人员在软件开发生命周期的早期阶段确定软件模块是否有缺陷,以便他们能够更好地分配测试资源,更有效地安排测试过程,从而提高软件产品的质量。通常认为,部署后修复缺陷比在开发过程中处理缺陷更昂贵。因此,提高缺陷预测能力非常重要。软件缺陷预测的重要组成部分主要包括代码表示以及缺陷预测模型构建。
软件代码表示是软件缺陷预测的前提,其目的是提取有效的代码特征,以便对源代码进行更详细地分析。现有的研究提出了各种各样的软件特征,这些特征可以分为两种主要类型:代码度量和过程度量。软件代码表示目前主要有三种代码表示技术:基于令牌的代码表示、基于抽象语法树(AST)的代码表示和基于图的代码表示。在基于令牌的代码表示过程中,源代码片段被视为令牌序列。在基于AST的代码表示过程中,为挖掘不同代码元素的语义关系,源代码被解析成AST。基于图的代码表示使用图来描述源代码的结构信息,如依赖图、控制流图和数据流图等。
传统的软件缺陷预测模型主要基于程序特征的统计来预测程序是否有缺陷,近年来,随着深度学习的广泛运用,研究人员开始利用深度学习来执行有效的特征生成以进行缺陷预测。一种常见的做法是利用抽象语法树(AST)解析器从源代码文件中提取语义信息,然后将AST编码成数字向量,以便将其馈送到深度神经网络,深度神经网络进一步提取语义特征,但语义特征不是万能的,不能表示传统特征中包含的一些信息,如代码行数,这对于缺陷预测同样具有重要意义。
发明内容
针对于上述现有技术的不足,本发明的目的在于提供一种基于双向长短期记忆神经网络的软件缺陷预测方法及终端,以解决现有技术中对缺陷代码信息的表征方式单一且不充分的问题;本发明通过结合代码变更信息和抽象语法树信息丰富代码语义特征,同时结合传统度量特征,补充语义特征不能表征的信息,达到更加精确的缺陷预测结果。
为达到上述目的,本发明采用的技术方案如下:
本发明的一种基于双向长短期记忆神经网络的软件缺陷预测方法,包括步骤如下:
步骤1):从PROMISE库中选取若干个开源Java项目进行预处理,以项目文件有无缺陷作为标签,基于源代码解析的抽象语法树及较上一版本的代码变更数据作为属性构建数据集;
步骤2):对所述构建的数据集中基于源代码解析的抽象语法树进行处理,筛选、提取三类抽象语法树节点,构建抽象语法树节点序列;代码变更数据针对所提取抽象语法树类型相关的代码变更,筛选、提取四大类代码变更节点,构建代码变更节点序列;
步骤3):训练BiLSTM模型,以抽象语法树节点序列和代码变更节点序列构成的组合序列作为输入,代码语义特征作为输出;
步骤4):采用门控融合策略组合PROMISE库中的度量特征和步骤3)中训练后的BiLSTM模型得到的代码语义特征向量,以得到的组合特征向量和文件有无缺陷标签作为输入,训练逻辑回归分类器;
步骤5):测试数据按照上述步骤4)流程生成组合特征向量,并输入到训练后的逻辑回归分类器,判断文件是否存在缺陷,评估软件缺陷预测模型性能。
进一步地,所述步骤1)具体包括:
11)对获取的若干个开源Java项目进行处理,过滤不支持解析抽象语法树的文件;
12)将步骤11)获取的Java文件解析为抽象语法树,同时获取不同版本源代码对应的代码变更信息,构建数据集。
进一步地,所述步骤2)具体包括:
21)对数据集中基于源代码解析的抽象语法树进行处理,筛选、提取方法调用类型、声明类型和控制流类型三类抽象语法树节点,构建抽象语法树节点序列;
22)代码变更数据针对方法调用类型、声明类型和控制流类型三类代码变更筛选、提取插入(Insert)、删除(Delete)和更新(Update)三类代码变更节点,构建代码变更节点序列。
进一步地,所述步骤3)具体包括:
31)将步骤21)中生成的抽象语法树节点序列和步骤22)中生成的代码变更节点序列连接构成组合序列;
32)将同一个项目的节点序列连接生成语义代码语料库,利用Word2Vec模型训练单词嵌入模型,并将步骤31)中获得组合序列输入训练后的单词嵌入模型,对组合序列进行编码,将组合序列节点表示成向量序列,向量序列输入到BiLSTM模型,输出语义特征。
进一步地,所述步骤4)具体包括:
41)利用门控融合策略是在融合阶段调整步骤32)中输出的语义特征以及PROMISE库中提供的度量特征的比例;将语义特征和度量特征分别输入门函数,并在门函数中使用一个全连接层为通过信息生成一个过滤器,过滤掉冗余信息,保留对缺陷预测有用的特征信息,输出结果通过concatenate函数,生成组合特征;
42)将步骤41)生成的组合特征和标签作为输入,训练Softmax逻辑回归分类器模型。
进一步地,所述步骤5)具体包括:
51)通过Precession(精度)、Recall(召回率)以及F-measure(F值)衡量软件缺陷预测模型的性能好坏。
本发明还提供一种基于双向长短期记忆神经网络的软件缺陷预测终端,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现所述基于双向长短期记忆神经网络的软件缺陷预测方法中的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述基于双向长短期记忆神经网络的软件缺陷预测方法中的步骤。
本发明的有益效果:
本发明充分利用了代码变更信息丰富了代码语义特征,利用Word2Vec词嵌入模型将语义特征统一表示成词向量形式,输入到BiLSTM模型,结合门控融合策略,构建缺陷预测模型,得到了更加精确的缺陷预测结果。具体说,主要有以下优点:
(1)本发明采用双向长短期记忆网络挖掘代码语义信息,克服了传统深度学习模型(如循环神经网络模型)存在的长序列上信息丢失的问题,对于较长的节点序列依旧可以很好的学习其语义信息。
(2)本发明采用门控融合策略,通过门函数在融合阶段自动确定语义特征和传统度量特征的比例,利用全连接层为通过信息生成一个过滤器,过滤掉冗余信息,保留对缺陷预测有用的特征信息,优化了软件缺陷预测模型,以达到更精确的缺陷预测结果。
附图说明
图1为本发明的方法架构图。
图2为本发明所使用的双向长短期记忆网络应用于代码语义特征挖掘的示意图。
图3为本发明中缺陷预测过程图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例与附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
参照图1所示,本发明的一种基于双向长短期记忆神经网络的软件缺陷预测方法,包括步骤如下:
步骤1)对由PROMISE库中选取10个(于其他示例中也可以为其他个数)开源Java项目进行预处理,以项目文件有无缺陷作为标签,基于源代码解析的抽象语法树以及较上一版本的代码变更数据作为属性构建数据集。其中,
11)从PROMISE库中获取10个开源Java项目(Ant、Camel、Jedit、Log4j、Lucene、Poi等),对获取的项目进行处理,过滤掉不支持解析抽象语法树的文件;
12)利用开源Python库Javalang,从源代码中提取抽象语法树,构建抽象语法树数据集。利用开源代码修改识别工具Changedistiller,通过对比代码修改前后两个抽象语法树来识别代码的变更类型,并以工具为基础扩展实现代码变更节点提取方法,提取代码变更类型,代码变更节点标签以及变更源代码,构建代码变更数据集;抽象语法树数据集,代码变更数据集以及PROMISE库提供的传统度量信息共同构成数据集。
步骤2)对数据集中基于源代码解析的抽象语法树进行处理,筛选、提取三类抽象语法树节点,构建抽象语法树节点序列;代码变更数据主要针对所提取抽象语法树类型相关的代码变更,筛选、提取三类代码变更节点,构建代码变更节点序列。其中,
21)对数据集中基于源代码解析的抽象语法树进行处理,筛选、提取方法调用类型、声明类型和控制流类型三大类抽象语法树节点,排除某些方法或者类特定的AST节点类型(如赋值和内在类型声明等)可能引入的干扰。表1为提取的抽象语法树节点具体类别;如下:
表1
22)代码变更数据针对方法调用类型、声明类型和控制流类型三类代码变更筛选、提取Insert、Delete、Update(插入、删除和更新)三大类代码变更节点,排除不改变代码语义信息的变更(如方法名称改变,代码注释的变更等)。表2为提取的代码变更节点类别。如下:
表2
步骤3)训练BiLSTM模型,以抽象语法树节点序列和代码变更节点序列构成的组合序列作为输入,代码语义特征作为输出;其中,
31)对抽象语法树节点序列和代码变更节点序列连接构成组合序列,组合序列以<节点,特征,标签>三元组形式构成代码语义特征训练集;
32)将同一个项目的节点序列连接生成语义代码语料库,利用Word2Vec模型训练单词嵌入模型,使用训练后的单词嵌入模型将组合序列节点编码成40维数字向量vi,得到组合序列对应数字向量序列v=(v1,v2,v3...vm);数字向量序列v输入到BiLSTM模型中,输出128维度的语义特征vs(如图2所示);
步骤4)采用门控融合策略组合PROMISE库提供的传统度量特征向量和步骤3)中训练后的BiLSTM模型得到的代码语义特征向量,以得到的组合特征向量和文件有无缺陷标签作为输入,训练逻辑回归分类器;其中,
41)门控融合策略是将步骤32)输出的语义特征vs以及PROMISE库中提供的传统度量特征向量vt馈入门函数,在门函数中使用一个完全连接层为通过的信息生成一个过滤器,输出结果通过简单连接构成组合特征vc,具体定义为:
42)以步骤41)得到的组合特征vc和标签Buggy或者Clean作为输入,训练Softmax分类器,测试数据输入到训练好的分类器,输出预测结果Buggy或者Clean(如图3所示);具体定义为:
y=softmax(w·vc+b)
其中,w是softmax的权重矩阵,b是偏差项。
步骤5):测试数据按照上述步骤4)流程获得组合特征向量,输入到训练后的Softmax逻辑回归分类器,判断文件是否存在缺陷,评估软件缺陷预测模型性能。其中:
51)通过Precession(精度)、Recall(召回率)以及F-measure(F值)衡量软件缺陷预测模型的性能好坏,这三个指标广泛应用于评估缺陷预测技术;具体定义为:
其中,true positive是预测的真正有缺陷的有缺陷文件的数量,false position是预测的实际没有缺陷的有缺陷文件的数量,false negative是被预测为没有缺陷但实际是存在缺陷的文件数量。
本发明具体应用途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (8)
1.一种基于双向长短期记忆神经网络的软件缺陷预测方法,其特征在于,包括步骤如下:
步骤1):从PROMISE库中选取若干个开源Java项目进行预处理,以项目文件有无缺陷作为标签,基于源代码解析的抽象语法树及较上一版本的代码变更数据作为属性构建数据集;
步骤2):对所述构建的数据集中基于源代码解析的抽象语法树进行处理,筛选、提取三类抽象语法树节点,构建抽象语法树节点序列;代码变更数据针对所提取抽象语法树类型相关的代码变更,筛选、提取四大类代码变更节点,构建代码变更节点序列;
步骤3):训练BiLSTM模型,以抽象语法树节点序列和代码变更节点序列构成的组合序列作为输入,代码语义特征作为输出;
步骤4):采用门控融合策略组合PROMISE库中的度量特征和步骤3)中训练后的BiLSTM模型得到的代码语义特征向量,以得到的组合特征向量和文件有无缺陷标签作为输入,训练逻辑回归分类器;
步骤5):测试数据按照上述步骤4)流程生成组合特征向量,并输入到训练后的逻辑回归分类器,判断文件是否存在缺陷,评估软件缺陷预测模型性能。
2.根据权利要求1所述的基于双向长短期记忆神经网络的软件缺陷预测方法,其特征在于,所述步骤1)具体包括:
11)对获取的若干个开源Java项目进行处理,过滤不支持解析抽象语法树的文件;
12)将步骤11)获取的Java文件解析为抽象语法树,同时获取不同版本源代码对应的代码变更信息,构建数据集。
3.根据权利要求2所述的基于双向长短期记忆神经网络的软件缺陷预测方法,其特征在于,所述步骤2)具体包括:
21)对数据集中基于源代码解析的抽象语法树进行处理,筛选、提取方法调用类型、声明类型和控制流类型三类抽象语法树节点,构建抽象语法树节点序列;
22)代码变更数据针对方法调用类型、声明类型和控制流类型三类代码变更筛选、提取插入、删除和更新三类代码变更节点,构建代码变更节点序列。
4.根据权利要求3所述的基于双向长短期记忆神经网络的软件缺陷预测方法,其特征在于,所述步骤3)具体包括:
31)将步骤21)中生成的抽象语法树节点序列和步骤22)中生成的代码变更节点序列连接构成组合序列;
32)将同一个项目的节点序列连接生成语义代码语料库,利用Word2Vec模型训练单词嵌入模型,并将步骤31)中获得组合序列输入训练后的单词嵌入模型,对组合序列进行编码,将组合序列节点表示成向量序列,向量序列输入到BiLSTM模型,输出语义特征。
5.根据权利要求4所述的基于双向长短期记忆神经网络的软件缺陷预测方法,其特征在于,所述步骤4)具体包括:
41)利用门控融合策略是在融合阶段调整步骤32)中输出的语义特征以及PROMISE库中提供的度量特征的比例;将语义特征和度量特征分别输入门函数,并在门函数中使用一个全连接层为通过信息生成一个过滤器,过滤掉冗余信息,保留对缺陷预测有用的特征信息,输出结果通过concatenate函数,生成组合特征;
42)将步骤41)生成的组合特征和标签作为输入,训练Softmax逻辑回归分类器模型。
6.根据权利要求5所述的基于双向长短期记忆神经网络的软件缺陷预测方法,其特征在于,所述步骤5)具体包括:
51)通过精度、召回率以及F值衡量软件缺陷预测模型的性能好坏。
7.一种基于双向长短期记忆神经网络的软件缺陷预测终端,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6中任意一项所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111384223.9A CN114185769A (zh) | 2021-11-16 | 2021-11-16 | 基于双向长短期记忆神经网络的软件缺陷预测方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111384223.9A CN114185769A (zh) | 2021-11-16 | 2021-11-16 | 基于双向长短期记忆神经网络的软件缺陷预测方法及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185769A true CN114185769A (zh) | 2022-03-15 |
Family
ID=80602279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111384223.9A Pending CN114185769A (zh) | 2021-11-16 | 2021-11-16 | 基于双向长短期记忆神经网络的软件缺陷预测方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185769A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385512A (zh) * | 2022-03-23 | 2022-04-22 | 北京北大软件工程股份有限公司 | 软件源代码缺陷检测方法及装置 |
CN114782967A (zh) * | 2022-03-21 | 2022-07-22 | 南京航空航天大学 | 一种基于代码可视化学习的软件缺陷预测方法 |
CN114816997A (zh) * | 2022-03-29 | 2022-07-29 | 湖北大学 | 一种基于图神经网络与双向gru特征抽取的缺陷预测方法 |
CN114936158A (zh) * | 2022-05-28 | 2022-08-23 | 南通大学 | 一种基于图卷积神经网络的软件缺陷定位方法 |
CN115629995A (zh) * | 2022-12-21 | 2023-01-20 | 中南大学 | 基于多依赖lstm的软件缺陷定位方法、系统及设备 |
CN116991459A (zh) * | 2023-08-18 | 2023-11-03 | 中南大学 | 一种软件多缺陷信息预测方法与系统 |
CN117251376A (zh) * | 2023-10-09 | 2023-12-19 | 湖北大学 | 一种软件缺陷预测方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209211A (zh) * | 2020-01-16 | 2020-05-29 | 华南理工大学 | 一种基于长短期记忆神经网络的跨项目软件缺陷预测方法 |
-
2021
- 2021-11-16 CN CN202111384223.9A patent/CN114185769A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209211A (zh) * | 2020-01-16 | 2020-05-29 | 华南理工大学 | 一种基于长短期记忆神经网络的跨项目软件缺陷预测方法 |
Non-Patent Citations (2)
Title |
---|
蔡亮: "即时软件缺陷预测研究进展", 《软件学报》, vol. 30, no. 05, 15 May 2019 (2019-05-15), pages 1288 - 1307 * |
邓杰瀚: "基于程序源码语义的软件缺陷预测系统的设计与研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 02, 15 February 2021 (2021-02-15), pages 138 - 429 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114782967B (zh) * | 2022-03-21 | 2024-02-20 | 南京航空航天大学 | 一种基于代码可视化学习的软件缺陷预测方法 |
CN114782967A (zh) * | 2022-03-21 | 2022-07-22 | 南京航空航天大学 | 一种基于代码可视化学习的软件缺陷预测方法 |
CN114385512B (zh) * | 2022-03-23 | 2022-07-19 | 北京北大软件工程股份有限公司 | 软件源代码缺陷检测方法及装置 |
CN114385512A (zh) * | 2022-03-23 | 2022-04-22 | 北京北大软件工程股份有限公司 | 软件源代码缺陷检测方法及装置 |
CN114816997A (zh) * | 2022-03-29 | 2022-07-29 | 湖北大学 | 一种基于图神经网络与双向gru特征抽取的缺陷预测方法 |
CN114816997B (zh) * | 2022-03-29 | 2023-08-18 | 湖北大学 | 一种基于图神经网络与双向gru特征抽取的缺陷预测方法 |
CN114936158A (zh) * | 2022-05-28 | 2022-08-23 | 南通大学 | 一种基于图卷积神经网络的软件缺陷定位方法 |
CN114936158B (zh) * | 2022-05-28 | 2024-06-04 | 南通大学 | 一种基于图卷积神经网络的软件缺陷定位方法 |
CN115629995A (zh) * | 2022-12-21 | 2023-01-20 | 中南大学 | 基于多依赖lstm的软件缺陷定位方法、系统及设备 |
CN116991459A (zh) * | 2023-08-18 | 2023-11-03 | 中南大学 | 一种软件多缺陷信息预测方法与系统 |
CN116991459B (zh) * | 2023-08-18 | 2024-04-26 | 中南大学 | 一种软件多缺陷信息预测方法与系统 |
CN117251376A (zh) * | 2023-10-09 | 2023-12-19 | 湖北大学 | 一种软件缺陷预测方法和系统 |
CN117251376B (zh) * | 2023-10-09 | 2024-03-19 | 湖北大学 | 一种软件缺陷预测方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114185769A (zh) | 基于双向长短期记忆神经网络的软件缺陷预测方法及终端 | |
Wang et al. | Detecting code clones with graph neural network and flow-augmented abstract syntax tree | |
CN110232280B (zh) | 一种基于树结构卷积神经网络的软件安全漏洞检测方法 | |
CN110348214B (zh) | 对恶意代码检测的方法及系统 | |
CN112579477A (zh) | 一种缺陷检测方法、装置以及存储介质 | |
CN114896275A (zh) | 一种将自然语言文本转为sql语句的方法及系统 | |
CN113761893B (zh) | 一种基于模式预训练的关系抽取方法 | |
CN110888798B (zh) | 一种基于图卷积神经网络对软件缺陷预测方法 | |
CN111860981A (zh) | 一种基于lstm深度学习的企业国民行业类别预测方法及系统 | |
CN113127339A (zh) | 一种Github开源平台数据的获取方法及源代码缺陷修复系统 | |
Wang et al. | Detecting code clones with graph neural networkand flow-augmented abstract syntax tree | |
CN116702160B (zh) | 一种基于数据依赖增强程序切片的源代码漏洞检测方法 | |
CN113190219A (zh) | 一种基于递归神经网络模型的代码注释生成方法 | |
CN111858323B (zh) | 一种基于代码表示学习的即时软件缺陷预测方法 | |
CN113591093A (zh) | 基于自注意力机制的工业软件漏洞检测方法 | |
CN117454387A (zh) | 基于多维度的特征提取的漏洞代码检测方法 | |
CN110737469B (zh) | 一种功能粒度上基于语义信息的源代码相似度评估方法 | |
Saini et al. | Towards automating precision studies of clone detectors | |
CN111898134B (zh) | 基于LSTM和BiLSTM的智能合约漏洞检测方法和装置 | |
CN117591913A (zh) | 基于改进的R-Transformer的语句级软件缺陷预测方法 | |
GB2575496A (en) | Runtime analysis | |
Zhang et al. | Analysis of automatic code generation tools based on machine learning | |
CN115408506B (zh) | 联合语义解析和语义成分匹配的nl2sql的方法 | |
CN116401289A (zh) | 一种基于多源信息结合的可追溯性链接自动恢复方法 | |
Feng et al. | Sia-RAE: a siamese network based on recursive autoencoder for effective clone detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |