Page 218 - 《软件学报》2026年第5期
P. 218
刘浩 等: 基于图 Transformer 的变更集错误定位方法 2097
Transformer 模型中, 系统地探讨了保留变更节点标签信息 (如图 6 中 Change 部分) 和去除变更节点 (如图 6 中
w/o Change 部分) 对模型在精确率 P@K 评估指标下的影响. 实验结果显示保留标签信息的模型在精确率 P@K 方
面表现显著优于去除标签信息的模型. 保留标签信息较去除标签信息在 P@1、P@3 和 P@5 指标上分别提升了
15.8%、18.0% 和 22.4%. 对这一结果的解释是变更节点的标签明确反映了旧版本和新版本代码之间的差异, 这些
标签提供了关键的变更信息. 在 P@K 指标上, JDT 数据集中保留标签信息的效果提升最为显著, 达到了 21.7%. 这
一提升主要归因于 JDT 数据集中与错误报告相关的变更块中包含更多变更节点, 以及这些变更节点所含有的丰
富变更标签信息. 通过保留这些信息, GTCL 能够有效地捕捉和利用变更节点间的语义关系, 从而提高模型的精确
性和鲁棒性.
Change w/o Change
0.5
0.30 0.25
0.4 0.25 0.20
0.3 0.20 0.15
0.15
0.2 0.10
0.10
0.1 0.05
0.05
0 0 0
AspectJ JDT PDE SWT Tomcat ZXing AspectJ JDT PDE SWT Tomcat ZXing AspectJ JDT PDE SWT Tomcat ZXing
(a) P@1 (b) P@3 (c) P@5
图 6 有无变更节点的标签信息在 P@1、P@3 和 P@5 上的性能比较
综上所述, 变更节点标签对于图 Transformer 模型在软件错误定位任务中的性能提升至关重要. 通过保留
和利用这些信息, 模型能够更有效地捕捉和利用代码变更与错误报告之间的语义关系, 从而提高定位的精确性
和鲁棒性. 这一发现不仅为 GTCL 模型的设计提供了有力支持, 也为未来的软件错误定位研究提供了新的思路
和方法.
RQ3: GTCL 各子模块对本方法总体性能的贡献如何?
本研究进一步分析了模型各组成部分对整体性能的影响, 通过进行消融实验来评估变更语法树的使用、全局
相似度表示以及局部相似度分别对模型性能的贡献. 具体而言, 表 3 详细对比了未使用变更语法树直接进行相似
度计算的情形与仅依赖全局相似度表示或仅依赖局部相似度表示的性能.
表 3 消融实验分析
数据集 消融实验 P@1 P@3 P@5 Top@1 Top@5 Top@10 MAP MRR
0.167 0.121 0.114 0.167 0.214 0.255 0.087 0.159
w/o AST change
w/o Global 0.251 0.165 0.147 0.251 0.444 0.536 0.121 0.294
AspectJ
w/o Local 0.311 0.212 0.176 0.311 0.541 0.614 0.144 0.372
GTCL 0.407 0.301 0.249 0.407 0.638 0.766 0.173 0.424
w/o AST change 0.154 0.116 0.101 0.154 0.212 0.251 0.075 0.219
w/o Global 0.251 0.205 0.112 0.251 0.437 0.523 0.103 0.351
JDT
w/o Local 0.305 0.284 0.144 0.305 0.534 0.655 0.121 0.541
GTCL 0.394 0.269 0.175 0.394 0.799 0.918 0.146 0.587
0.254 0.144 0.105 0.254 0.439 0.517 0.078 0.208
w/o AST change
w/o Global 0.330 0.198 0.124 0.330 0.571 0.674 0.112 0.413
SWT
w/o Local 0.394 0.214 0.155 0.394 0.681 0.784 0.125 0.526
GTCL 0.478 0.233 0.190 0.478 0.824 0.948 0.151 0.607
0.157 0.108 0.085 0.157 0.282 0.318 0.069 0.164
w/o AST change
w/o Global 0.214 0.147 0.122 0.214 0.370 0.433 0.086 0.225
PDE
w/o Local 0.254 0.175 0.146 0.254 0.439 0.512 0.102 0.256
GTCL 0.307 0.211 0.179 0.307 0.624 0.715 0.121 0.327

