Learning probabilistic models for static analysis alarms

Learning probabilistic models for static analysis alarms
复制标题

学习静态分析警报的概率模型

DOI:
10.1145/3510003.3510098
复制
发表时间:
2022
期刊:
International Conference on Software Engineering
影响因子:
--
通讯作者:
Heo, Kihong
Heo, Kihong
中科院分区:
--
文献类型:
--
作者:
Kim, Hyunsu;Raghothaman, Mukund;Heo, Kihong

文献摘要

相似文献

我们提出了BayeSmith,一个自动学习静态分析报警概率模型的一般框架。最近已经提出了几种概率推理技术,其将外部反馈的语义事实,从而减少用户的报警检查负担。然而,这些方法从根本上局限于具有预定义结构的模型,因此无法从一个程序学习或将有关分析的知识转移到另一个程序。此外,这些概率模型经常从外部反馈中积极地概括,并错误地抑制了真实的错误。为了解决这些问题,我们提出了BayeSmith,它可以学习概率模型的结构和权重。从一个初始模型和一组带有bug标签的训练程序开始,BayeSmith改进了模型,以根据反馈有效地优先考虑真实的bug。我们评估的方法与两个静态分析一套C程序。我们证明,学习模型显着提高三个国家的最先进的概率推理系统的性能。
We present BayeSmith, a general framework for automatically learning probabilistic models of static analysis alarms. Several probabilistic reasoning techniques have recently been proposed which incorporate external feedback on semantic facts and thereby reduce the user's alarm inspection burden. However, these approaches are fundamentally limited to models with pre-defined structure, and are therefore unable to learn or transfer knowledge regarding an analysis from one program to another. Furthermore, these probabilistic models often aggressively generalize from external feedback and falsely suppress real bugs. To address these problems, we propose BayeSmith that learns the structure and weights of the probabilistic model. Starting from an initial model and a set of training programs with bug labels, BayeSmith refines the model to effectively prioritize real bugs based on feedback. We evaluate the approach with two static analyses on a suite of C programs. We demonstrate that the learned models significantly improve the performance of three state-of-the-art probabilistic reasoning systems.