Statistical Debugging with Elastic PredicatesReport
An important class of software, including simulations and computational models, employs stochastic distributions to represent, or support evaluation of, uncertainty in an underlying model. This class of software presents three interesting analysis challenges: 1) effective localization of the sources of unexpected outcomes; 2) effective treatment of stochastic distributions and the floating-point computations that generally accompany them and 3) separation of unexpected outcomes: disassociating valid, but unexpected, results from those reflecting software failure. Traditional debugging and fault localization methods have addressed primarily the first challenge, namely localization of sources of faults while assuming character, Boolean, integer and pointer operations. While these methods are effective in general, they are not tailored to software that uses stochastic distributions and floating-point computations. Thus there is opportunity. We introduce ESP, a novel approach to predicate-based statistical debugging. ESP localizes sources of unexpected outcomes in software using stochastic distributions and floating-point operations, thus addressing the first two aforementioned challenges. ESP predicates are elastic rather than uniform and static; each predicate adapts to variable values observed at its program instrumentation point. We present experimental results for established fault localization benchmarks and widely used simulations. For benchmarks employing stochastic distributions, ESP outperforms the best alternatives: Interesting Value Map Pair (IVMP), Cooperative Bug Isolation (CBI) and Tarantula. For traditional benchmarks, ESP performs similar to IVMP and outperforms CBI and Tarantula.
All rights reserved (no additional license for public reuse)
Gore, Ross, Paul Reynolds, and David Kamensky. "Statistical Debugging with Elastic Predicates." University of Virginia Dept. of Computer Science Tech Report (2011).
University of Virginia, Department of Computer Science