Angelic debugging

Software ships with known bugs because it is expensive to pinpoint and fix the bug exposed by a failing test. To reduce the cost of bug identification, we locate expressions that are likely causes of bugs and thus candidates for repair. Our symbolic method approximates an ideal approach to fixing bu...

Full description

Saved in:
Bibliographic Details
Published in:2011 33rd International Conference on Software Engineering (ICSE) pp. 121 - 130
Main Authors: Chandra, Satish, Torlak, Emina, Barman, Shaon, Bodik, Rastislav
Format: Conference Proceeding
Language:English
Published: New York, NY, USA ACM 21.05.2011
IEEE
Series:ACM Conferences
Subjects:
ISBN:9781450304450, 1450304451
ISSN:0270-5257
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Software ships with known bugs because it is expensive to pinpoint and fix the bug exposed by a failing test. To reduce the cost of bug identification, we locate expressions that are likely causes of bugs and thus candidates for repair. Our symbolic method approximates an ideal approach to fixing bugs mechanically, which is to search the space of all edits to the program for one that repairs the failing test without breaking any passing test. We approximate the expensive ideal of exploring syntactic edits by instead computing the set of values whose substitution for the expression corrects the execution. We observe that an expression is a repair candidate if it can be replaced with a value that fixes a failing test and in each passing test, its value can be changed to another value without breaking the test. The latter condition makes the expression flexible in that it permits multiple values. The key observation is that the repair of a flexible expression is less likely to break a passing test. The method is called angelic debugging because the values are computed by angelically nondeterministic statements. We implemented the method on top of the Java PathFinder model checker. Our experiments with this technique show promise of its applicability in speeding up program debugging.
ISBN:9781450304450
1450304451
ISSN:0270-5257
DOI:10.1145/1985793.1985811