Continuously Reasoning about Programs using Differential Bayesian Inference

被引:14
|
作者
Heo, Kihong [1 ]
Raghothaman, Mukund [1 ]
Si, Xujie [1 ]
Naik, Mayur [1 ]
机构
[1] Univ Penn, Philadelphia, PA 19104 USA
基金
美国国家科学基金会;
关键词
Static analysis; software evolution; continuous integration; alarm relevance; alarm prioritization; STATIC ANALYSIS; LINES; BUGS;
D O I
10.1145/3314221.3314616
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Programs often evolve by continuously integrating changes from multiple programmers. The effective adoption of program analysis tools in this continuous integration setting is hindered by the need to only report alarms relevant to a particular program change. We present a probabilistic framework, Drake, to apply program analyses to continuously evolving programs. Drake is applicable to a broad range of analyses that are based on deductive reasoning. The key insight underlying Drake is to compute a graph that concisely and precisely captures differences between the derivations of alarms produced by the given analysis on the program before and after the change. Performing Bayesian inference on the graph thereby enables to rank alarms by likelihood of relevance to the change. We evaluate Drake using SparrowDa static analyzer that targets buffer-overrun, format-string, and integer-overflow errorsDon a suite of ten widely-used C programs each comprising 13k-112k lines of code. Drake enables to discover all true bugs by inspecting only 30 alarms per benchmark on average, compared to 85 (3x more) alarms by the same ranking approach in batch mode, and 118 (4x more) alarms by a differential approach based on syntactic masking of alarms which also misses 4 of the 26 bugs overall.
引用
收藏
页码:561 / 575
页数:15
相关论文
共 50 条
  • [1] Bayesian inference in clinical reasoning
    Canals L., Mauricio
    REVISTA MEDICA DE CHILE, 2019, 147 (02) : 231 - 237
  • [2] REASONING ABOUT EVIDENCE USING BAYESIAN NETWORKS
    Tse, Hayson
    Chow, Kam-Pui
    Kwan, Michael
    ADVANCES IN DIGITAL FORENSICS VIII, 2012, 383 : 97 - 111
  • [4] Reasoning about evidence using Bayesian networks
    Kwan, Michael
    Chow, Kam-Pui
    Law, Frank
    Lai, Pierre
    ADVANCES IN DIGITAL FORENSICS IV, 2008, 285 : 275 - 289
  • [5] Reasoning about Programs Using a Scientific Method
    O'Hearn, Peter W.
    FORMAL METHODS AND SOFTWARE ENGINEERING, 2011, 6991 : 14 - 14
  • [6] REASONING ABOUT PROGRAMS
    WALDINGER, RJ
    LEVITT, KN
    ARTIFICIAL INTELLIGENCE, 1974, 5 (03) : 235 - 316
  • [7] Inference reasoning on fishers' knowledge using Bayesian causal maps
    de Beaufort, Louis Bonneau
    Sedki, Karima
    Fontenelle, Guy
    ECOLOGICAL INFORMATICS, 2015, 30 : 345 - 355
  • [8] User-Guided Program Reasoning using Bayesian Inference
    Raghothaman, Mukund
    Kulkarni, Sulekha
    Heo, Kihong
    Naik, Mayur
    ACM SIGPLAN NOTICES, 2018, 53 (04) : 722 - 735
  • [9] User-guided program reasoning using Bayesian inference
    Raghothaman M.
    Kulkarni S.
    Heo K.
    Naik M.
    ACM SIGPLAN Notices, 2018, 53 (04): : 722 - 735
  • [10] User-Guided Program Reasoning using Bayesian Inference
    Raghothaman, Mukund
    Kulkarni, Sulekha
    Heo, Kihong
    Naik, Mayur
    PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 722 - 735