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.

Research Question 2<br />

Is it possible to support the migration process (<strong>Ajax</strong>ification) <strong>of</strong> multi<strong>page</strong><br />

web applications to single-<strong>page</strong> <strong>Ajax</strong> interfaces? Can reverse engineering<br />

techniques help in automating this process?<br />

Our hypothesis is that reverse engineering (Chik<strong>of</strong>sky <strong>and</strong> Cross II, 1990)<br />

techniques can assist us in reconstructing abstract models <strong>of</strong> the source application,<br />

by automating (Arnold, 1993) all or parts <strong>of</strong> the process. Since the<br />

user interface interaction models <strong>of</strong> the source (<strong>page</strong>-sequence) <strong>and</strong> the target<br />

(single-<strong>page</strong> with UI components, see Chapter 2) systems are substantially<br />

different, user interface reverse engineering (Stroulia et al., 2003) will play an<br />

important role in our quest. Automatically reconstructing an abstract user<br />

interface model <strong>of</strong> the source multi-<strong>page</strong> web application is a first, but also a<br />

key step in the migration process.<br />

1.3.3 <strong>Analysis</strong> <strong>and</strong> <strong>Testing</strong><br />

Our final main question deals with the dependability (Sommerville, 2007)<br />

<strong>of</strong> <strong>Ajax</strong> applications. In principle, we are interested in appropriate ways to<br />

analyze <strong>and</strong> test <strong>Ajax</strong> systems.<br />

For traditional s<strong>of</strong>tware, analysis <strong>and</strong> testing is still largely ad hoc<br />

(Bertolino, 2007) <strong>and</strong> already a notoriously time-consuming <strong>and</strong> expensive<br />

process (Beizer, 1990). Classical web applications present even more challenges<br />

(Di Lucca <strong>and</strong> Fasolino, 2006; Andrews et al., 2005) due to their distributed,<br />

heterogeneous nature. In addition, web applications have the ability<br />

to dynamically generate different UIs in response to user inputs <strong>and</strong> server<br />

state (Andrews et al., 2005).<br />

The highly dynamic nature <strong>of</strong> <strong>Ajax</strong> user interfaces <strong>and</strong> their client/server<br />

delta communication adds an extra level <strong>of</strong> complexity to the classical web<br />

analysis <strong>and</strong> testing challenges. Therefore, we formulate our third main question<br />

as:<br />

Research Question 3<br />

What are the challenges for analyzing <strong>and</strong> testing <strong>Ajax</strong> applications in<br />

an automatic approach?<br />

which, in turn, is composed <strong>of</strong> three sub-questions focusing on data delivery<br />

performance, automatic crawling, <strong>and</strong> user interface testing.<br />

Performance <strong>Testing</strong><br />

One <strong>of</strong> the challenges related to client/server interactions is to ensure data<br />

coherence, i.e., ensuring that the data (state changes) on the server <strong>and</strong> the<br />

client are synchronized. The hypothesis is that a push-<strong>based</strong> implementation<br />

<strong>of</strong>fers a higher degree <strong>of</strong> data coherence when compared to a pull-<strong>based</strong> one.<br />

But at the same time, it is generally believed that a push-<strong>based</strong> solution that<br />

keeps open connections for all clients causes scalability problems on the web.<br />

16 1.3. Challenges <strong>and</strong> Research Questions

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

Saved successfully!

Ooh no, something went wrong!