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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

target system.<br />

Even though the techniques introduced in this chapter have only been applied<br />

to one case study, considering the results obtained, we believe the applications<br />

can span real-world web application migration cases. Although the<br />

JPetStore interface is very simple, it is representative <strong>of</strong> dynamic transactional<br />

web applications, <strong>and</strong> this class <strong>of</strong> web applications is exactly what we aim<br />

for. Our approach is not meant for web sites that are composed <strong>of</strong> long <strong>page</strong>s<br />

such as news, article, or forum sites. We will need to conduct more case<br />

studies to find strengths <strong>and</strong> weaknesses <strong>of</strong> our techniques <strong>and</strong> improve the<br />

tool.<br />

We take a client-side analysis approach. While having the benefit <strong>of</strong> being<br />

server-code independent, the information that can be inferred from the serverside,<br />

such as scripting languages as JSP, is also essential for conducting a real<br />

migration process.<br />

One <strong>of</strong> the problems we encountered while carrying out the case study,<br />

was that some HTML <strong>page</strong>s contained elements that were not well-formed<br />

or were not recognized by the formatter. Even JTidy was not able to fix the<br />

problems <strong>and</strong> no conversion to XHTML could be conducted. For instance<br />

in a few <strong>page</strong>s, instead <strong>of</strong> element a was used. Manual<br />

intervention was required to fix the problem. This sort <strong>of</strong> problems are<br />

inherent in web applications <strong>and</strong> can cause real problems in real-world migration<br />

cases, where st<strong>and</strong>ard guidelines are neglected <strong>and</strong> faulty HTML code is<br />

written/generated.<br />

For a more detailed discussion <strong>of</strong> the limitations <strong>of</strong> the proposed approach<br />

see 7.2.<br />

3.9 Related Work<br />

Reverse engineering techniques have been applied to web application settings<br />

primarily to gain a comprehensible view <strong>of</strong> the systems.<br />

Hassan <strong>and</strong> Holt (2002) present an approach to recover the architectural<br />

model <strong>of</strong> a web application by extracting relations between the various components<br />

<strong>and</strong> visualizing those relations.<br />

Di Lucca et al. (2002c,d) propose WARE which is a tool for reverse engineering<br />

<strong>Web</strong> applications to the Conallen extension (Conallen, 2003) <strong>of</strong> UML<br />

models. Draheim et al. (2005), present Revengie to reconstruct form-oriented<br />

analysis models for web applications.<br />

Ricca <strong>and</strong> Tonella (2001) propose Re<strong>Web</strong>, a tool to analyze source code to<br />

recover a navigational model <strong>of</strong> a web site. They use the models obtained by<br />

Re<strong>Web</strong> for testing (Tonella <strong>and</strong> Ricca, 2004) web applications. Supporting the<br />

migration <strong>of</strong> static to dynamic web <strong>page</strong>s is illustrated in (Ricca <strong>and</strong> Tonella,<br />

2003) by applying an agglomerative hierarchical clustering approach.<br />

De Lucia et al. (2005, 2004b) present a program comprehension approach<br />

to identify duplicated HTML <strong>and</strong> JSP <strong>page</strong>s <strong>based</strong> on a similarity threshold<br />

using Levenshtein string edit distance method. They use three notions <strong>of</strong><br />

Chapter 3. Migrating Multi-<strong>page</strong> <strong>Web</strong> <strong>Applications</strong> to <strong>Ajax</strong> Interfaces 71

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

Saved successfully!

Ooh no, something went wrong!