{'fraction_non_alphanumeric': 0.021551724137931036, 'fraction_numerical': 0.0, 'mean_word_length': 5.0785340314136125, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Testing of AJAX-Based Web Applications Using Hierarchical State Model

As Ajax, a widely used web development technique, is able to dynamically construct the structures of DOM elements on the browser side, more and more executions of business logic have been shifted from back-end servers to front-end browsers. Moreover, by means of Ajax technique, updates of Web content can take place asynchronously in the background without requesting the whole web pages from servers so it gains the benefit from reducing the amount of network traffic between browsers and web servers. However, in term of web application testing, the existing approaches, adopting web-browsing paths as test cases, are failed to apply in such web applications. In this paper, we propose a test model for Ajax-based web applications based on a hierarchical state machine. The test model is established from observing the state changes of HTML element's attributes and the events that trigger the changes, and then transformed into state transition test trees. Finally, it generates corresponding test cases composed by triggered events to test the behavior of Ajax-based web applications.