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 条
  • [41] Reasoning about the disruption patterns for train system using Bayesian Network and Prolog
    Pradiawati, Yunita Rachma
    Rusmawati, Yanti
    Arzaki, Muhammad
    2ND INTERNATIONAL CONFERENCE ON DATA AND INFORMATION SCIENCE, 2019, 1192
  • [42] A Framework for Reasoning about the Semantics of Logic Programs
    Bull Eur Assoc Theor Comput Sci, 59 (426):
  • [43] REASONING ABOUT TERMINATION OF PURE PROLOG PROGRAMS
    APT, KR
    PEDRESCHI, D
    INFORMATION AND COMPUTATION, 1993, 106 (01) : 109 - 157
  • [44] Reasoning about states of probabilistic sequential programs
    Chadha, R.
    Mateus, P.
    Sernadas, A.
    COMPUTER SCIENCE LOGIC, PROCEEDINGS, 2006, 4207 : 240 - 255
  • [45] Reasoning about Multi-stage Programs
    Inoue, Jun
    Taha, Walid
    PROGRAMMING LANGUAGES AND SYSTEMS, 2012, 7211 : 357 - 376
  • [46] Algebraic rules for reasoning about BSP programs
    Stewart, A
    Clint, M
    Gabarró, J
    CONSTRUCTIVE METHODS FOR PARALLEL PROGRAMMING, 2002, 10 : 41 - 57
  • [47] TUTORIAL NOTES - REASONING ABOUT LOGIC PROGRAMS
    BUNDY, A
    LECTURE NOTES IN ARTIFICIAL INTELLIGENCE, 1992, 636 : 252 - 277
  • [48] Reasoning about multi-stage programs
    Inoue, Jun
    Taha, Walid
    JOURNAL OF FUNCTIONAL PROGRAMMING, 2016, 26 : 1 - 53
  • [49] Developing and reasoning about probabilistic programs in pGCL
    McIver, Annabelle
    Morgan, Carroll
    REFINEMENT TECHNIQUES IN SOFTWARE ENGINEERING, 2006, 3167 : 123 - 155
  • [50] BAYESIAN PREDICTIVE APPROACH FOR INFERENCE ABOUT PROPORTIONS
    LECOUTRE, B
    DERZKO, G
    GROUIN, JM
    STATISTICS IN MEDICINE, 1995, 14 (9-10) : 1057 - 1063