Analysis and Testing of Ajax-based Single-page Web Applications
Analysis and Testing of Ajax-based Single-page Web Applications
Analysis and Testing of Ajax-based Single-page Web Applications
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
• An automated, distributed s<strong>of</strong>tware testing infrastructure, for conducting<br />
performance analyses <strong>of</strong> <strong>Ajax</strong> web applications. The proposed infrastructure<br />
is implemented in an open source framework called Chiron.<br />
Chiron can simulate thous<strong>and</strong>s <strong>of</strong> concurrent web users <strong>and</strong> collect<br />
data on network usage, server performance, <strong>and</strong> data coherence. We<br />
have used Chiron to conduct an empirical study for a comparison <strong>of</strong> the<br />
performance trade<strong>of</strong>fs <strong>of</strong> using push- (Comet) <strong>and</strong> pull-<strong>based</strong> web data<br />
delivery techniques on <strong>Ajax</strong> applications. The results <strong>of</strong> our empirical<br />
study help engineers to anticipate the effects <strong>of</strong> key parameters such as<br />
pull <strong>and</strong> push intervals, <strong>and</strong> the number <strong>of</strong> web clients on, for instance,<br />
data coherence <strong>and</strong> server performance.<br />
• A crawling method for <strong>Ajax</strong>, <strong>based</strong> on dynamic analysis <strong>of</strong> single-<strong>page</strong><br />
web interfaces. The method infers a state-flow graph <strong>of</strong> the navigational<br />
paths by running the web application in an embedded browser, detecting<br />
<strong>and</strong> executing clickable elements, <strong>and</strong> analyzing the user interface<br />
state changes. The technique is implemented in an open source tool<br />
called Crawljax, which can automatically make a full pass over <strong>Ajax</strong><br />
web interfaces.<br />
• An automated technique for testing <strong>Ajax</strong> user interfaces. The technique<br />
is <strong>based</strong> on an extension <strong>of</strong> the crawling technique to dynamically find<br />
the doorways to different states <strong>and</strong> data entry points on <strong>Ajax</strong> web interfaces.<br />
We propose to use invariants, as oracle, on the DOM tree <strong>and</strong> the<br />
inferred state machine to detect faults. The technique is implemented in<br />
an open source tool called Atusa, <strong>of</strong>fering a plugin-mechanism to add<br />
invariant checking components <strong>and</strong> application-specific state validators.<br />
Atusa provides a number <strong>of</strong> generic invariant plugins, such as DOM<br />
validation <strong>and</strong> test suite generation.<br />
7.2 Research Questions Revisited<br />
In the beginning <strong>of</strong> this thesis, we formulated a set <strong>of</strong> research questions.<br />
We believe that the contributions indicate that we have successfully met the<br />
objectives. We will now discuss the results for each chapter individually <strong>and</strong><br />
with respect to other chapters.<br />
Research Question 1<br />
What are the fundamental architectural differences <strong>and</strong> trade<strong>of</strong>fs between designing<br />
a classical <strong>and</strong> an <strong>Ajax</strong>-<strong>based</strong> web application? Can current architectural<br />
styles describe <strong>Ajax</strong>? If not, can we propose an architectural style taylored for<br />
<strong>Ajax</strong>?<br />
In order to answer the first research question, Chapter 2 <strong>based</strong> its foundation<br />
on the s<strong>of</strong>tware architecture literature, to underst<strong>and</strong> the key properties<br />
<strong>of</strong> a new, complex, <strong>and</strong> dynamic s<strong>of</strong>tware family. S<strong>of</strong>tware architecture turned<br />
154 7.2. Research Questions Revisited