利用开发者讨论引导软件缺陷修复
通过挖掘 GitHub 上项目代码的变更历史记录,使用神经机器翻译技术进行修复漏洞的学习,设计并训练了一个 Encoder-Decoder 模型,可以在瞬间模仿各种不同的 AST 操作,并生成候选修复程序,可在实际环境中修复数以千计的独特故障方法,并预测出开发人员生成的固定补丁的 9-50%。
Dec, 2018
通过自然语言补丁,我们能够提供正确的抽象层次,从而为 NLP 模型提供更准确的校正反馈,此任务与整合补丁信息的任务可以分开,使用少量的合成数据来教导模型,能有效地使用实际数据上应用的补丁,使用 1 至 7 个补丁可以提高情感分析数据集上~1-4 的准确性点和关系提取数据集上 F1 7 点的精度,最后我们展示了即使有 100 个从标签数据示例微调模型,与一组小的语言补丁相比,也需要更多的时间。
Nov, 2022
本文提出一种通过学习不同的自然语言表征和代码表征之间的关系,生成一系列编辑操作来更新现有自然语言注释的方法,并在开源软件项目集合上进行多个实验和对比,结果表明该模型性能优于其他算法。
Apr, 2020
利用基于注意力机制的双向循环神经网络方法提取软件故障报告中的句法和语义特征,并通过无监督学习进行调试人员分类,验证实验表明该方法相比传统的 BOW 模型和机器学习方法在排名前 10 的准确度上有所提升。
Jan, 2018
本研究提出了一种新的自动分类缺陷报告的方法,采用自然语言处理技术对文本信息进行预处理,并综合考虑缺陷报告的意图,包括 Apache、Eclipse、Gentoo、Mozilla 等四个生态系统,使用 BERT 和 TF-IDF 技术提取特征,训练分类器后实验结果表明,我们的方法的 F-Measure 从 87.3% 提高到了 95.5%。
Aug, 2022
该论文介绍了利用 Neural Machine Translation 技术将 diffs 转化为 commit messages 的方法,并进行了模型训练和评估,同时提出了质量过滤器来保证生成 commit messages 的质量。
Aug, 2017
DeepDebug 是数据驱动的程序修复方法,其可以从 GitHub 代码库中挖掘的实际 Java 方法中学习检测和修复错误的方法。通过将错误修补构建为序列到序列的学习任务,它实现了两个步骤,即去噪预训练和有监督的微调。本方法显示出比以前的工作更好的异常检测能力,并且可以使用通用解析器进行语言无关的方法。
Apr, 2021
本论文提出了一种新的角度来解决补丁正确性评估问题,并利用自然语言处理和神经网络来学习和预测补丁是否正确,取得了 0.886 的 AUC 值和 93% 的正确率。
Aug, 2022
本文提出了一种基于自然语言处理技术的方法,考虑 Bug 报告的结构化和非结构化属性,例如概述、描述、严重性、影响产品、平台和类别等信息,利用自定义数据转换器、深度神经网络和非泛化机器学习方法检索现有的相同 Bug 报告,并在大量数据来源的众多实验中展示了所提出的解决方案在召回率为 5 时的高检索准确性为 70%。
Dec, 2022