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.
Classic <strong>Web</strong><br />
Application<br />
Nav.<br />
Model<br />
Extraction<br />
Nav. Model<br />
UI Component Model<br />
Identification<br />
C<strong>and</strong>idate<br />
UI<br />
Components<br />
Developer<br />
<strong>Single</strong>-<strong>page</strong> UI Model<br />
Definition<br />
<strong>Single</strong> Page<br />
UI Model<br />
Target UI Model<br />
Transformation<br />
<strong>Single</strong> Page<br />
UI<br />
Metamodel<br />
Target UI<br />
Metamodel<br />
e.g., BXML,<br />
GWT<br />
<strong>Ajax</strong> Interface<br />
Generate<br />
Target UI<br />
Model<br />
Figure 3.2 Reverse Engineering Classic <strong>Web</strong> <strong>Applications</strong> to <strong>Ajax</strong> Interfaces.<br />
3.3.1 Retrieving Pages<br />
Looking at dynamic web applications from an end-user’s perspective enables<br />
us to gain an underst<strong>and</strong>ing <strong>of</strong> the application without having to cope with<br />
the many different server-side web programming languages. Building a runtime<br />
mirror-copy <strong>of</strong> the web <strong>page</strong>s can be carried out by applying static as<br />
well as dynamic analysis techniques. Static analysis can examine the <strong>page</strong>s<br />
<strong>and</strong> find href links to other internal <strong>page</strong>s. Dynamic analysis can help up<br />
to retrieve <strong>page</strong>s which require specific request parameters (form-<strong>based</strong>), for<br />
instance, through scenario-<strong>based</strong> test cases or collecting traces <strong>of</strong> user actions<br />
(e.g., sessions, input data) interacting with the web application. It is clear that<br />
the more our retrieved mirror-copy resembles the actual web application, the<br />
better our navigational path <strong>and</strong> UI component identification will be.<br />
3.3.2 Navigational Path Extraction<br />
In order to migrate from a classic web application (source) to a single-<strong>page</strong><br />
<strong>Ajax</strong> interface (target), we first need to gain an underst<strong>and</strong>ing <strong>of</strong> the navi-<br />
58 3.3. Migration Process