Page 221 - 《软件学报》2026年第5期
P. 221
2100 软件学报 2026 年第 37 卷第 5 期
[6]
交之间的复杂关系. FBL-BERT 将变化的标签加入训练中, 但是没有利用代码的结构信息, 而是简单地使用代码
[7]
的文本信息. SemanticCodeBERT 在代码预训练的基础上, 使用语义流图来表示代码变更块, 更充分地捕捉了代码
语义, 但是没有体现代码的变更.
本文提出了将变更信息显式融入抽象语法树的方法. 通过关注代码变更部分, 并将其与基于变更的抽象语法
树相结合, 我们能够更准确地捕捉变更集与错误报告之间的联系. 这种方法不仅利用了代码的文本信息, 还结合了
代码的结构信息和变更信息, 从而提高了错误定位的准确性和效率.
综上所述, 定位变更集是软件错误定位任务中的一个重要方面. 通过结合代码的历史版本信息、错误报告以
及代码的结构和变更信息, 我们能够更有效地定位导致错误出现的具体代码变更. 这将有助于开发者更快地修复
问题, 提高软件的质量和稳定性.
5 有效性威胁
本文的内部有效性威胁主要来自技术实现及实验实施. 为了缓解威胁, 实验使用的图 Transformer 以及抽象语
法树构造均采用其官方或开源实现, 并在第 3.2.2 节所描述的系统环境下进行调试. 本文实验中已有研究方法的复
现全部基于其作者本人开源的代码和数据, 并保留原作者对内部相关参数的各项设定.
本文的构建威胁主要来自实验采用的评估指标. 为了缓解威胁, 实验采用先前工作广泛使用的指标. 这些指标
在前人的研究中已被广泛使用, 并被证明在类似实验中具有较高的有效性和可靠性. 通过使用这些经过充分验证
的评估指标, 我们旨在确保实验结果的可靠性和可重复性, 从而有效降低评估过程中的潜在偏差和误差.
本文的外部有效性威胁主要来自实验对象程序. 为了缓解威胁, 实验采用定位诱发错误变更集广泛使用的基
准数据集. 因其是基于 Java 的错误数据集, 尽管其在软件工程研究中具有极为广泛的应用, 但是仍然不能够轻易
地将实验结论推广到其他程序语言, 这也是本文研究的局限性. 在未来, 我们会拓展实验场景, 在更多的程序语言
(例如, C/C++与 Python) 上比对诱发错误变更集定位效果, 从而得到更为一般的结论. 未来工作应该在更为广泛的
数据集上进行比对研究.
6 总结与展望
本文提出了基于图 Transformer 的变更集错误定位方法. 该方法从变更前后的代码出发, 首先使用抽象语法树
工具生成变更前后代码的抽象语法树, 将变更前后代码之间的变化体现在抽象语法树上并标注变更节点的变更类
型; 再分别获得错误报告和历史提交的全局和局部两个视角的代码变更的特征; 然后计算错误报告和历史提交的
全局相似度, 并采用相关性匹配计算变更节点与错误报告的局部相似度; 最后, 利用注意力系数聚合全局和局部的
相似度计算错误报告与历史提交的相似度进行错误定位.
本文在 6 个提交数据集上进行了充分实验, 并且对实验结果进行了分析与总结. 由于故障定位方法本身就是
相当复杂的问题, 本文还有一些需要改进的地方, 后续会对模型进行完善. 尽管基于现有的变更提交模型已经能够
取得不错的定位效果, 本文所提出的方法仍然难以理解仅有词级别的差异而语义不同的代码更改. 因此, 后续研究
可以考虑利用大模型理解代码的语义信息作为补充, 将两者结合, 从而实现更为全面的定位效果.
References
[1] Nguyen AT, Nguyen TT, Al-Kofahi J, Nguyen HV, Nguyen TN. A topic-based approach for narrowing the search space of buggy files
from a bug report. In: Proc. of the 26th IEEE/ACM Int’l Conf. on Automated Software Engineering (ASE). Lawrence: IEEE, 2011.
263–272. [doi: 10.1109/ase.2011.6100062]
[2] Zhou J, Zhang HY, Lo D. Where should the bugs be fixed? More accurate information retrieval-based bug localization based on bug
reports. In: Proc. of the 34th Int’l Conf. on Software Engineering (ICSE). Zurich: IEEE, 2012. 14–24. [doi: 10.1109/ICSE.2012.6227210]
[3] Ma X, Huang P, Jin XX, Wang P, Park S, Shen DC, Zhou YY, Saul LK, Voelker GM. eDoctor: Automatically diagnosing abnormal
battery drain issues on smartphones. In: Proc. of the 10th USENIX Conf. on Networked Systems Design and Implementation (NSDI).
Lombard: USENIX Association, 2013. 57–70.
[4] Kamei Y, Shihab E, Adams B, Hassan AE, Mockus A, Sinha A, Ubayashi N. A large-scale empirical study of just-in-time quality

