Automatic static analysis tools (ASATs), such as Findbugs, have a high false alarm rate. The large number of false alarms produced poses a barrier to adoption. Researchers have proposed the use of machine learning to prune false alarms and present only actionable warnings to developers. The state-of-the-art study has identified a set of "Golden Features" based on metrics computed over the characteristics and history of the file, code, and warning. Recent studies show that machine learning using these features is extremely effective and that they achieve almost perfect performance. We perform a detailed analysis to better understand the strong performance of the "Golden Features". We found that several studies used an experimental procedure that results in data leakage and data duplication, which are subtle issues with significant implications. Firstly, the ground-truth labels have leaked into features that measure the proportion of actionable warnings in a given context. Secondly, many warnings in the testing dataset appear in the training dataset. Next, we demonstrate limitations in the warning oracle that determines the ground-truth labels, a heuristic comparing warnings in a given revision to a reference revision in the future. We show the choice of reference revision influences the warning distribution. Moreover, the heuristic produces labels that do not agree with human oracles. Hence, the strong performance of these techniques previously seen is overoptimistic of their true performance if adopted in practice. Our results convey several lessons and provide guidelines for evaluating false alarm detectors.
翻译:自动静态分析工具( ASATs), 如 Findbugs 等自动静态分析工具( ASATs) 具有很高的假警报率。 大量生成的假警报构成了采用的障碍。 研究人员已经提议使用机器学习来淡化假警报, 并向开发者只提供可操作的警告。 最新的最新研究已经根据根据文件、 代码和警告的特性和历史的量度计算出了一系列“ Golden 特征 ” 。 最近的研究显示, 使用这些特征的机器学习非常有效, 并且取得了几乎完美的性能。 我们进行了详细分析, 以更好地了解“ Golden 特性” 的强效性能。 我们发现, 一些研究使用了实验性程序, 导致数据泄漏和数据重复, 这些都是具有重大影响的问题。 首先, 地真真真假标签标签标签的特性已经渗漏了。 测试数据集中的许多警告都出现在培训数据集中。 其次, 我们展示了在确定地面标签标签的准确性参考标准中的局限性, 肝脏比较警告时, 我们没有在前期的判断中进行精确性评估, 。