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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
To the best <strong>of</strong> our knowledge, at the time <strong>of</strong> writing no study had been<br />
conducted to explore the actual trade<strong>of</strong>fs in terms <strong>of</strong> data coherence, server<br />
performance <strong>and</strong> scalability, network performance, <strong>and</strong> data delivery reliability,<br />
involved in applying a push- versus pull-<strong>based</strong> approach to web-<strong>based</strong><br />
settings.<br />
<strong>Web</strong> applications are distributed systems, <strong>and</strong> distributed systems are inherently<br />
more difficult to engineer (Wang et al., 2005) <strong>and</strong> test than sequential<br />
systems (Alager <strong>and</strong> Venkatsean, 1993). Controllability, observability (Chen<br />
et al., 2006), <strong>and</strong> reproducibility are all challenging issues in distributed testing<br />
environments. In order to conduct a comparison <strong>of</strong> different web data<br />
delivery techniques, first an automated, controllable, <strong>and</strong> repeatable test environment<br />
has to be set up, to obtain accurate empirical data for each approach.<br />
This leads us to our next research question:<br />
Research Question 3.1<br />
What are the trade<strong>of</strong>fs <strong>of</strong> applying pull- <strong>and</strong> push-<strong>based</strong> data delivery<br />
techniques on the web? Can we set up an automated distributed test<br />
environment to obtain empirical data for comparison?<br />
Automatic Crawling<br />
General web search engines, such as Google <strong>and</strong> Yahoo!, cover only a portion<br />
<strong>of</strong> the web called the publicly indexable web, which consists <strong>of</strong> the set <strong>of</strong> web<br />
<strong>page</strong>s reachable purely by following hyperlinks. Dynamic content behind<br />
web forms <strong>and</strong> client-side scripting is generally ignored <strong>and</strong> referred to as the<br />
hidden web (Raghavan <strong>and</strong> Garcia-Molina, 2001).<br />
Although there has been extensive research on finding <strong>and</strong> exposing the<br />
hidden web behind forms (Barbosa <strong>and</strong> Freire, 2007; de Carvalho <strong>and</strong> Silva,<br />
2004; Lage et al., 2004; Ntoulas et al., 2005; Raghavan <strong>and</strong> Garcia-Molina,<br />
2001; Madhavan et al., 2008), the hidden web induced as a result <strong>of</strong> client-side<br />
scripting in general <strong>and</strong> <strong>Ajax</strong> in particular has gained very little attention so<br />
far.<br />
Consequently, while <strong>Ajax</strong> techniques are very promising in terms <strong>of</strong> improving<br />
rich interactivity <strong>and</strong> responsiveness, <strong>Ajax</strong>-<strong>based</strong> applications may<br />
very well end up in the hidden web. We believe this is one <strong>of</strong> the main reasons<br />
people hesitate to use <strong>Ajax</strong> on their public web sites.<br />
Crawling <strong>Ajax</strong>-<strong>based</strong> web interfaces is fundamentally more challenging<br />
than crawling classical multi-<strong>page</strong> applications. The main reason is that in<br />
the classical web model, all states are explicit, <strong>and</strong> each one corresponds to a<br />
unique URL. In <strong>Ajax</strong>-<strong>based</strong> applications, however, the state <strong>of</strong> the user interface<br />
is determined dynamically, through event-driven changes in the run-time<br />
DOM-tree. This means that simply extracting <strong>and</strong> following hyperlinks does<br />
not suffice any longer. New methods <strong>and</strong> techniques are required to dynamically<br />
analyze the complex user interface elements, events, <strong>and</strong> state changes,<br />
which leads us to our next question:<br />
Chapter 1. Introduction 17