The Community for Technology Leaders
Green Image
Issue No. 02 - March-April (2012 vol. 38)
ISSN: 0098-5589
pp: 314-335
Julian Dolby , IBM Thomas J. Watson Research Center, Yorktown Heights
Frank Tip , IBM Thomas J. Watson Research Center, Yorktown Heights
Marco Pistoia , IBM Thomas J. Watson Research Center, Yorktown Heights
Shay Artzi , IBM Software Group, Littleton
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.
INDEX TERMS
Fault localization, statistical debugging, program analysis, web applications, PHP.
CITATION
Julian Dolby, Frank Tip, Marco Pistoia, Shay Artzi, "Fault Localization for Dynamic Web Applications", IEEE Transactions on Software Engineering, vol. 38, no. , pp. 314-335, March-April 2012, doi:10.1109/TSE.2011.76
275 ms
(Ver 3.1 (10032016))