• DocumentCode
    1290051
  • Title

    Fault Localization for Dynamic Web Applications

  • Author

    Artzi, Shay ; Dolby, Julian ; Tip, Frank ; Pistoia, Marco

  • Author_Institution
    IBM Software Group, Littleton, MA, USA
  • Volume
    38
  • Issue
    2
  • fYear
    2012
  • Firstpage
    314
  • Lastpage
    335
  • 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;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2011.76
  • Filename
    5975173