Automated Support for Reproducing and Debugging Field Failures
Author(s) -
Wei Jin,
Alessandro Orso
Publication year - 2015
Publication title -
acm transactions on software engineering and methodology
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.597
H-Index - 78
eISSN - 1557-7392
pISSN - 1049-331X
DOI - 10.1145/2774218
Subject(s) - debugging , computer science , eclipse , field (mathematics) , set (abstract data type) , software engineering , programming language , physics , mathematics , astronomy , pure mathematics
As confirmed by a recent survey conducted among developers of the Apache, Eclipse, and Mozilla projects, two extremely challenging tasks during maintenance are reproducing and debugging field failures—failures that occur on user machines after release. To help developers with these tasks, in this article we present an overall approach that comprises two different techniques: BugRedux and F3. BugRedux is a general technique for reproducing field failures that collects dynamic data about failing executions in the field and uses this data to synthesize executions that mimic the observed field failures. F3 leverages the executions generated by BugRedux to perform automated debugging using a set of suitably optimized fault-localization techniques. To assess the usefulness of our approach, we performed an empirical evaluation of the approach on a set of real-world programs and field failures. The results of our evaluation are promising in that, for all the failures considered, our approach was able to (1) synthesize failing executions that mimicked the observed field failures, (2) synthesize passing executions similar to the failing ones, and (3) use the synthesized executions to successfully perform fault localization with accurate results.
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom