Title :
Fault Localization for Dynamic Web Applications
Author :
Artzi, Shay ; Dolby, Julian ; Tip, Frank ; Pistoia, Marco
Author_Institution :
IBM Software Group, Littleton, MA, USA
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 fault-localization 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.
Keywords :
program testing; software fault tolerance; statistical analysis; Apollo; Jaccard; Ochiai; Tarantula; dynamic Web applications; fault localization; fault localization effectiveness; open-source PHP applications; path constraint; source mapping; statistical analysis; test generation strategies; Algorithm design and analysis; Browsers; Concrete; Databases; HTML; Open source software; Servers; Fault localization; PHP.; program analysis; statistical debugging; web applications;
Journal_Title :
Software Engineering, IEEE Transactions on
DOI :
10.1109/TSE.2011.76