"uuid","repository link","title","author","contributor","publication year","abstract","subject topic","language","publication type","publisher","isbn","issn","patent","patent status","bibliographic note","access restriction","embargo date","faculty","department","research group","programme","project","coordinates" "uuid:443976bc-9a43-4351-8eef-e7dfcf47bb94","http://resolver.tudelft.nl/uuid:443976bc-9a43-4351-8eef-e7dfcf47bb94","Invariant-Based Automatic Testing of AJAX User Interfaces","Mesbah, A.; Van Deursen, A.","","2009","This paper is a pre-print of: Ali Mesbah and Arie van Deursen. Invariant-Based Automatic Testing of AJAX User Interfaces. In Proceedings of the 31st International Conference on Software Engineering (ICSE’09), Research Papers, Vancouver, Canada, IEEE Computer Society, 2009. 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 AJAXspecific 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 applicationspecific 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.","","en","report","Delft University of Technology, Software Engineering Research Group","","","","","","","","Electrical Engineering, Mathematics and Computer Science","Software Computer Technology","","","",""