13-11-2012, 02:32 PM
Fault Localization for Dynamic Web Applications
Abstract
In recent years, there has been significant interest in
fault-localization techniques that are based on statistical
analysis of program constructs executed by passing and
failing executions. This paper shows how the Tarantula,
Ochiai, and Jaccard fault-localization algorithms can be
enhanced to localize faults effectively in web
applications written in PHP by using an extended
domain for conditional and function-call statements and
by using a source mapping. We also propose several
novel test-generation strategies that are geared toward
producing test suites that have maximal faultlocalization
effectiveness. We implemented various
fault-localization techniques and test-generation
strategies in Apollo, and evaluated them on several
open-source PHP applications. Our results indicate that a
variant of the Ochiai algorithm that includes all our
enhancements localizes 87.8 percent of all faults to
within 1 percent of all executed statements, compared to
only 37.4 percent for the unenhanced Ochiai algorithm.
We also found that all the test-generation strategies that
we considered are capable of generating test suites with
maximal fault-localization effectiveness when given an
infinite time budget for test generation. However, on
average, a directed strategy based on path-constraint
similarity achieves this maximal effectiveness after
generating only 6.5 tests, compared to 46.8 tests for an
undirected test-generation strategy.