25.07.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!