• DocumentCode
    1994053
  • Title

    Invariant-based automatic testing of AJAX user interfaces

  • Author

    Mesbah, Ali ; Van Deursen, Arie

  • Author_Institution
    Software Eng. Res. Group, Delft Univ. of Technol., Delft
  • fYear
    2009
  • fDate
    16-24 May 2009
  • Firstpage
    210
  • Lastpage
    220
  • 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 flow graph for all (client-side) user interface states. We identify AJAX-specific faults that can occur in such states (related to DOM validity, error messages, discoverability, back-button compatibility, etc.) as well as DOM-tree invariants that can serve as oracle to detect such faults. We implemented our approach in ATUSA, 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 two case studies evaluating the fault revealing capabilities, scalability, required manual effort and level of automation of our approach.
  • Keywords
    Internet; Java; client-server systems; flow graphs; program testing; user interfaces; AJAX application; AJAX user interfaces; AJAX-based Web 2.0 application; AJAX-specific faults; DOM tree; DOM validity; DOM-tree invariants; application-specific state validator; asynchronous client/server communication; back-button compatibility; client-side runtime manipulation; discoverability; error messages; flow graph; invariant checking components; invariant-based automatic testing; Automatic testing; Automation; Crawlers; Fault detection; Fault diagnosis; Flow graphs; Runtime; Scalability; Tree graphs; User interfaces;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2009. ICSE 2009. IEEE 31st International Conference on
  • Conference_Location
    Vancouver, BC
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4244-3453-4
  • Type

    conf

  • DOI
    10.1109/ICSE.2009.5070522
  • Filename
    5070522