摘要

针对现有基于深度神经网络的代码缺陷检测方法无法分析缺陷特征并输出相关评审建议的问题,提出一种基于大感知域LSTM-Seq2Seq模型的代码缺陷检测方法。首先,使用长短期记忆网络(LSTM,long shortterm memory)学习缺陷代码的编码特征,建立缺陷判别模型。其次,针对模型与数据集不匹配的问题,向序列到序列模型(Seq2Seq,sequence to sequence)引入代码段长度系数,提升模型对代码评审任务的适用度;通过建立代码缺陷特征与评审建议特征间的映射关系建立了代码分析模型,实现评审输出功能。最后,利用公开数据集SARD对该方法进行了验证,该方法在准确率、召回率、F1值方面的测试结果分别为92.50%、87.20%、87.60%,典型代码缺陷输出的评审文本与专家评审的文本相似度为85.99%,可有效减少评审过程对专家经验的依赖。