Iterative User-Driven Fault Localization

被引:19
作者
Li, Xiangyu [1 ]
d'Amorim, Marcelo [2 ]
Orso, Alessandro [1 ]
机构
[1] Georgia Inst Technol, Atlanta, GA 30332 USA
[2] Univ Fed Pernambuco, Recife, PE, Brazil
来源
HARDWARE AND SOFTWARE: VERIFICATION AND TESTING, HVC 2016 | 2016年 / 10028卷
基金
美国国家科学基金会;
关键词
D O I
10.1007/978-3-319-49052-6_6
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Because debugging is a notoriously expensive activity, numerous automated debugging techniques have been proposed in the literature. In the last ten years, statistical fault localization emerged as the most popular approach to automated debugging. One problem with statistical fault localization techniques is that they tend to make strong assumptions on how developers behave during debugging. These assumptions are often unrealistic, which considerably limits the practical applicability and effectiveness of these techniques. To mitigate this issue, we propose Swift, an iterative user-driven technique designed to support developers during debugging. Swift (1) leverages statistical fault localization to identify suspicious methods, (2) generates high-level queries to the developer about the correctness of specific executions of the most suspicious methods, (3) uses the feedback from the developer to improve the localization results, and (4) repeats this cycle until the fault has been localized. Our empirical evaluation of Swift, performed on 26 faults in 5 programs, produced promising results; on average, Swift required less than 10 user queries to identify the fault. Most importantly, these queries were only about input/output relationships for specific executions of the methods, which developers should be able to answer quickly and without having to look at the code. We believe that Swift is a first important step towards defining fault localization techniques that account for the presence of humans in the loop and are practically applicable.
引用
收藏
页码:82 / 98
页数:17
相关论文
共 26 条
  • [1] Abreu R, 2006, 12TH PACIFIC RIM INTERNATIONAL SYMPOSIUM ON DEPENDABLE COMPUTING, PROCEEDINGS, P39
  • [2] [Anonymous], 2006, P 2006 INT S SOFTWAR
  • [3] [Anonymous], 2006, P 23 INT C MACH LEAR
  • [4] From symptom to cause: Localizing errors in counterexample traces
    Ball, T
    Naik, M
    Rajamani, SK
    [J]. ACM SIGPLAN NOTICES, 2003, 38 (01) : 97 - 105
  • [5] Bandyopadhyay A., 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation (ICST 2012), P41, DOI 10.1109/ICST.2012.84
  • [6] Chandra S, 2011, 2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), P121, DOI 10.1145/1985793.1985811
  • [7] Cleve H, 2005, PROC INT CONF SOFTW, P342
  • [8] Dillig I, 2012, ACM SIGPLAN NOTICES, V47, P181, DOI [10.1145/2345156.2254087, 10.1145/2345156.1993565]
  • [9] Gong L, 2012, 2012 28TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE (ICSM), P67, DOI 10.1109/ICSM.2012.6405255
  • [10] VIDA: Visual Interactive Debugging
    Hao, Dan
    Zhang, Lingming
    Zhang, Lu
    Sun, Jiasu
    Mei, Hong
    [J]. 2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2009, : 583 - 586