静态代码分析器误报误漏的实证研究:基于历史问题的视角
软件工程
2024-08-27 v1
摘要
静态代码分析器广泛用于帮助发现程序缺陷。然而,在实际应用中,这些分析器的有效性和可用性受到误报(误报)和漏报(漏报)问题的影响。本文旨在从新视角探讨这些分析器的误报和漏报,即考察由分析器维护者、用户和研究者在问题仓库中报告的历史误报/误漏问题——这些问题在历史上曾被确认并被修复。为此,我们对350个来自三个流行静态代码分析器(即PMD、SpotBugs和SonarQube)的历史误报/误漏问题进行了首次系统性研究。所有这些问题均已被开发者确认并修复。我们调查了这些问题的根源及其触发程序的特征。结果揭示了若干新颖的发现和意义,对缓解误报和漏报具有启发作用。此外,基于我们的研究发现,我们设计了一种变形测试策略,用于发现误报和误漏。该策略成功发现14个新的误报/误漏问题,其中11个已被确认,9个已被开发者修复。进一步的手动调查发现,这些分析器中存在一条规则规范问题以及因静态分析实现 weakness 而产生的额外4个误报/误漏。我们已将所有制品(数据集和工具)在https://zenodo.org/doi/10.5281/zenodo.11525129公开。
引用
@article{arxiv.2408.13855,
title = {An Empirical Study of False Negatives and Positives of Static Code Analyzers From the Perspective of Historical Issues},
author = {Han Cui and Menglei Xie and Ting Su and Chengyu Zhang and Shin Hwei Tan},
journal= {arXiv preprint arXiv:2408.13855},
year = {2024}
}