42digest首页
大规模收集(非)可采取行动的静态代码分析报告

A Large-Scale Collection Of (Non-)Actionable Static Code Analysis Reports

Dávid Kószó, Tamás Aladics, Rudolf Ferenc, Péter Hegedűs

arXiv
2025年11月13日

静态代码分析(SCA)工具虽然对于识别潜在的编码问题,功能错误或漏洞非常宝贵,但通常会产生大量的警告,其中许多是不可操作的。 这种警报过载导致“警报疲劳”,这种现象使开发人员对警告脱敏,可能忽略关键问题,最终阻碍生产力和代码质量。 分析这些警告并训练机器学习模型来识别和过滤它们需要大量的数据集,这些数据集目前很少,特别是对于Java。 这种稀缺性阻碍了提高SCA工具的准确性和可用性以及减轻警报疲劳的影响的努力。 在本文中,我们通过引入一种新的方法来收集和分类SCA警告,有效地区分可操作的和非可操作的警报,从而解决了这一差距。 我们进一步利用这种方法生成一个包含超过100万个Java源代码警告条目的大规模数据集,命名为NASCAR:(非)可操作静态代码分析报告。 为了促进该领域的后续研究,我们使数据集和用于生成它的工具都公开可用。

Static Code Analysis (SCA) tools, while invaluable for identifying potential coding problems, functional bugs, or vulnerabilities, often generate an overwhelming number of warnings, many of which are non-actionable. This overload of alerts leads to "alert fatigue", a phenomenon where developers become desensitized to warnings, potentially overlooking critical issues and ultimately hindering productivity and code quality. Analyzing these warnings and training machine learning models to identify a...