利用多任务学习提升 SATD 与漏洞检测
软件工程
2025-07-03 v1
摘要
多任务学习是一种利用相关任务信息以提升机器学习性能的范式。自承认技术债务 (SATD) 是代码中的注释,表明为满足短期需求而引入的不够理想的代码,即技术债务 (TD)。先前的研究提供了 SATD 与代码中漏洞存在关系的证据。本文探讨多任务学习是否能够利用 SATD 与漏洞之间共享的信息,以提升这些问题的自动检测。为此,我们实现了一个基于 CodeBERT 的深度学习器 VulSATD,用于检测带有 SATD 和漏洞的代码。我们在 MADE-WIC 数据集上评估了 VulSATD,该数据集由标注了 TD (通过 SATD) 和漏洞的函数组成。我们比较了单任务和多任务方法的结果,在采用加权损失后,两者之间没有显著差异。我们的发现表明,需进一步调查这些低质量代码方面的 SATD 与漏洞之间的关系。 Specifically, it is possible that only a subset of technical debt is directly associated with security concerns. Therefore, the relationship between different types of technical debt and software vulnerabilities deserves future exploration and a deeper understanding.
引用
@article{arxiv.2501.15934,
title = {Leveraging multi-task learning to improve the detection of SATD and vulnerability},
author = {Barbara Russo and Jorge Melegati and Moritz Mock},
journal= {arXiv preprint arXiv:2501.15934},
year = {2025}
}