• DocumentCode
    1468666
  • Title

    Invariant-Based Automatic Testing of Modern Web Applications

  • Author

    Mesbah, Ali ; Van Deursen, Arie ; Roest, Danny

  • Author_Institution
    Dept. of Electr. & Comput. Eng., Univ. of British Columbia, Vancouver, BC, Canada
  • Volume
    38
  • Issue
    1
  • fYear
    2012
  • Firstpage
    35
  • Lastpage
    53
  • Abstract
    Ajax-based Web 2.0 applications rely on stateful asynchronous client/server communication, and client-side runtime manipulation of the DOM tree. This not only makes them fundamentally different from traditional web applications, but also more error-prone and harder to test. We propose a method for testing Ajax applications automatically, based on a crawler to infer a state-flow graph for all (client-side) user interface states. We identify Ajax-specific faults that can occur in such states (related to, e.g., DOM validity, error messages, discoverability, back-button compatibility) as well as DOM-tree invariants that can serve as oracles to detect such faults. Our approach, called Atusa, is implemented in a tool offering generic invariant checking components, a plugin-mechanism to add application-specific state validators, and generation of a test suite covering the paths obtained during crawling. We describe three case studies, consisting of six subjects, evaluating the type of invariants that can be obtained for Ajax applications as well as the fault revealing capabilities, scalability, required manual effort, and level of automation of our testing approach.
  • Keywords
    Internet; Java; XML; automatic testing; client-server systems; program testing; trees (mathematics); user interfaces; AJAX-based Web 2.0 application; AJAX-specific fault identification; DOM-tree invariant; application-specific state validator; client-side runtime manipulation; fault detection; fault revealing capability; generic invariant checking component; invariant-based automatic testing; state-flow graph; stateful asynchronous client-server communication; user interface; Browsers; Robots; Servers; User interfaces; Web and internet services; Ajax.; Automated testing; web applications;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2011.28
  • Filename
    5728834