Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
11-2017
Abstract
Debugging is difficult. Recent studies show that automatic bug localization techniques have limited usefulness. One of the reasons is that programmers typically have to understand why the program fails before fixing it. In this work, we aim to help programmers understand a bug by automatically generating likely invariants which are violated in the failed tests. Given a program with an initial assertion and at least one test case failing the assertion, we first generate random test cases, identify potential bug locations through bug localization, and then generate program state mutation based on active learning techniques to identify a predicate 'explaining' the cause of the bug. The predicate is a classifier for the passed test cases and failed test cases. Our main contribution is the application of invariant learning for bug explanation, as well as a novel approach to overcome the problem of lack of test cases in practice. We apply our method to real-world bugs and show the generated invariants are often correlated to the actual bug fixes.
Keywords
Active learning, Debugging, Invariant
Discipline
Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
ICECCS 2017: 22nd International Conference on Engineering of Complex Computer Systems: Fukuoka, Japan, November 5-8: Proceedings
First Page
70
Last Page
79
ISBN
9781538624319
Identifier
10.1109/ICECCS.2017.12
Publisher
IEEE Computer Society
City or Country
Los Alamitos, CA
Citation
PHAM, Long H.; SUN, Jun; THI, Lyly Tran; WANG, Jingyi; and PENG, Xin.
Learning likely invariants to explain why a program fails. (2017). ICECCS 2017: 22nd International Conference on Engineering of Complex Computer Systems: Fukuoka, Japan, November 5-8: Proceedings. 70-79.
Available at: https://ink.library.smu.edu.sg/sis_research/4705
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/ICECCS.2017.12