摘要
arXiv:2503.23448v1 宣告类型:交叉
摘要:最近在缺陷检测中使用了语言模型。现有工作通过增强训练数据来提高模型在处理语义相同代码时的鲁棒性(即,预测结果应相同)。然而,在应用工具时,并未考虑使用语义相同代码来改进工具,这一概念与变形测试密切相关。
我们的研究目标是确定是否可以使用保留语义的变换,类似于突变操作,来提高缺陷检测工具在测试阶段的性能。我们首先收集了实现了保留语义变换的现有文献,并共享了它们的实现,以便可以重新使用这些实现。我们实证研究了三种不同的集成策略,以增强缺陷检测工具的效能。我们对包含漏洞作为缺陷类型的 Devign 数据集以及两个微调的大语言模型(VulBERTa,PLBART)应用了收集到的变换。我们发现了 28 篇文献,涉及 94 种不同的变换。
我们选择了四项文献中的 39 种变换来实现,但手动检查发现其中 23 种变换更改了代码语义。使用剩余的 16 种正确的变换和三种集成策略,我们未能提高缺陷检测模型的准确性。我们的结果显示,重新使用共享的保留语义变换具有挑战性,有时甚至会导致语义的错误变化。