语义保持变换作为变异算子:在缺陷检测中的有效性研究
软件工程
2025-04-01 v1 人工智能
计算与语言
机器学习
摘要
近期的缺陷检测研究使用语言模型。现有工作通过增强训练数据来提高模型对语义相同代码(即预测应相同)的鲁棒性。然而,针对工具在应用中的改进尚未考虑语义相同代码,这与 metamorphic testing 概念密切相关。我们的研究目标是确定我们能否将语义保持变换,类似于变异算子,用于提高缺陷检测工具在测试阶段的性能。我们首先收集了实现语义保持变换的已有文献,并分享其实现,以便重复使用。我们对三种不同的集成策略用于增强缺陷检测工具的有效性进行了经验研究。我们将所收集的变换应用于 Devign 数据集,将 vulnerability 作为一种缺陷类型,并对两种微调的大型语言模型进行缺陷检测( VulBERTa、PLBART)。我们发现了 28 篇文献和 94 种不同的变换。我们选择从四篇文献中实现 39 种变换,但手动检查发现其中 23 种变换改变了代码语义。使用剩余的 16 种正确变换和三种集成策略,我们无法提高缺陷检测模型的准确率。我们的结果表明,重用共享的语义保持变换困难,有时甚至会导致对语义的错误更改。
引用
@article{arxiv.2503.23448,
title = {Semantic-Preserving Transformations as Mutation Operators: A Study on Their Effectiveness in Defect Detection},
author = {Max Hort and Linas Vidziunas and Leon Moonen},
journal= {arXiv preprint arXiv:2503.23448},
year = {2025}
}
备注
Accepted for publication in Mutation 2025 at the 18th IEEE International Conference on Software Testing, Verification and Validation (ICST 2025)