×

Bugram(错误)

swMATH ID: 40141
软件作者: Song Wang、Devin Chollak、Dana Movshovitz-Attias、Lin Tan
描述: 错误:使用n-gram语言模型进行错误检测。为了提高软件的可靠性,人们提出了许多基于规则的技术来推断编程规则并将违反这些规则的行为检测为错误。这些基于规则的方法通常依赖于项目中某些模式的频繁出现来推断规则。众所周知,如果一个模式出现的频率不够高,则无法学习规则,从而遗漏了许多错误。在本文中,我们提出了一种新的方法——Bugram,它利用n元语言模型而不是规则来检测bug。Bugram使用n-gram语言模型对程序令牌进行顺序建模。然后根据学习模型中的概率评估程序中的令牌序列,并将低概率序列标记为潜在错误。假设程序中的低概率标记序列是不寻常的,这可能表明程序中存在错误、不良实践或开发人员可能希望了解的代码的不寻常/特殊用法。我们用两种方法评估Bugram。首先,我们将Bugram应用于16个开源Java项目的最新版本。结果表明,Bugram检测到59个错误,其中42个被手动验证为正确,其中25个是真正的错误,17个是应该重构的代码片段。在25个真正的bug中,有23个是PR Miner无法检测到的。我们已经向开发人员报告了这些错误,其中7个已经被开发人员确认(其中4个已经修复),其余的等待确认。其次,我们进一步将Bugram与另外三种基于图形和规则的错误检测工具进行了比较,即JADET、Tikanga和GrouMiner。我们将Bugram应用于这三项研究中评估的14个Java项目。Bugram检测到21个真正的错误,其中至少有10个是这三种工具无法检测到的。我们的结果表明,Bugram是对现有基于规则的bug检测方法的补充。
主页: https://dl.acm.org/doi/abs/10.1145/2970276.2970341
源代码:  https://github.com/hsellik/thesis/tree/master/bugram
相关软件: 设计;图形代码BERT;MISIM公司;StaQC公司;CoCoSUM公司;胶水;皮提亚;代码BLEU;小队;深度Bugs;BLEU公司;自由演讲;芳香;罗伯塔;XGLUE公司;SPoC公司;甲板;代码搜索网;XTREME公司;深度修复
引用于: 0个文档