基于语义流图预训练代码表示的有效缺陷定位
软件工程
2023-08-25 v1
摘要
受预训练在自然语言处理中巨大成功的启发,近年来用于编程语言的预训练模型已被广泛用于促进代码智能。特别地,BERT已被用于缺陷定位任务并取得了令人印象深刻的成果。然而,这些基于BERT的缺陷定位技术存在两个问题。第一,在源代码上预训练的BERT模型未能充分捕获程序代码的深层语义。第二,整体缺陷定位模型忽视了对比学习中大规模负样本对于变更集表示的必要性,并在相似度估计时忽略了缺陷报告与变更集之间的词汇相似度。我们通过以下方式解决这两个问题:1)提出一种称为语义流图(SFG)的新型有向多标签代码图表示,其紧凑且充分地捕获代码语义;2)基于SFG设计并训练SemanticCodeBERT;3)设计一种新颖的分层动量对比缺陷定位技术(HMCBL)。评估结果表明,我们的方法在缺陷定位中达到了最先进的性能。
引用
@article{arxiv.2308.12773,
title = {Pre-training Code Representation with Semantic Flow Graph for Effective Bug Localization},
author = {Yali Du and Zhongxing Yu},
journal= {arXiv preprint arXiv:2308.12773},
year = {2023}
}
备注
Accepted by 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE'23)