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.
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