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.
plays a more prominent role in the client/server distributed spectrum, as<br />
more logic is being ported from the server-side to the client-side.<br />
In addition, unlike traditional object-oriented systems, the heterogeneous<br />
nature <strong>of</strong> web applications increases the difficulty <strong>of</strong> useful analysis <strong>based</strong><br />
on inspections <strong>of</strong> the source code. Static analysis techniques, which are commonly<br />
used with success on object-oriented applications, have serious limitations<br />
in analyzing modern <strong>Ajax</strong> applications where underst<strong>and</strong>ing the runtime<br />
behavior is crucial. As we have seen in Chapter 5, even simply finding<br />
<strong>and</strong> following links is not possible any longer on <strong>Ajax</strong> interfaces by static<br />
analysis <strong>of</strong> the source code. Using dynamic analysis to gather data from a<br />
running web program seems then the right direction to take, which in turn<br />
has its own difficulties <strong>and</strong> limitations, such as incompleteness <strong>and</strong> scalability<br />
(Cornelissen et al., 2009).<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 techniques<br />
on the web? Can we set up an automated distributed test environment to obtain<br />
empirical data for comparison?<br />
Conducting an experiment to compare the actual trade<strong>of</strong>fs <strong>of</strong> pull <strong>and</strong> push<br />
<strong>based</strong> web data delivery techniques turned out to be a difficult task, as explained<br />
in Chapter 4. Our first attempt in conducting the experiment consisted<br />
<strong>of</strong> a great deal <strong>of</strong> manual work, from starting the servers, the client<br />
simulation processes, to gathering <strong>and</strong> saving the run-time information, parsing<br />
the data, <strong>and</strong> generating graphs. The difficulty in coordination <strong>of</strong> the different<br />
modules in such a distributed environment encouraged us to opt for an<br />
automated approach, implemented in Chiron. Besides decreasing the manual<br />
effort, such an automated testing environment greatly increases the accuracy<br />
<strong>of</strong> the experiment, since similar test runs can be sequentially performed with<br />
exactly the same parameters.<br />
The proposed experiments are very complex, since the execution environment<br />
contains various distributed interacting concurrent s<strong>of</strong>tware processes<br />
<strong>and</strong> distributed hardware devices. For these reasons, the execution <strong>of</strong> our<br />
experiments is subject to validation threats, as discussed thoroughly in Chapter<br />
4.<br />
Although the experiment in Chapter 4 has been conducted on one sample<br />
application, <strong>and</strong> the Comet push servers are still experimental, the results<br />
show a promising trend in web data delivery techniques which clearly out<br />
perform pull-<strong>based</strong> approaches in terms <strong>of</strong> data coherence <strong>and</strong> network performance.<br />
Currently, scalability <strong>of</strong> the server, when a high number <strong>of</strong> clients<br />
has to be served, is the main concern when push is used.<br />
Chiron is not bound to any specific web technology <strong>and</strong> almost every aspect<br />
<strong>of</strong> the tool is configurable, <strong>and</strong> since it has been made open source, similar<br />
experiments by others can be carried out to dynamically analyze the runtime<br />
performance properties <strong>of</strong> web systems.<br />
Chapter 7. Conclusion 157