A Tookit for Analysis, Testing and Restructuring of Web Applications
by Filippo Ricca and Paolo Tonella
We have defined and implemented a toolkit to support the quality of Web applications. The validity of this toolkit has been assessed by extensive empirical work.
A number of studies show that the quality of Web applications is often poor or unsatisfactory; end users often make the same claim. Quality demands on these software systems are thus increasing.
Since 1999, in the SSI division at ITC-irst (a public research centre of the Autonomous Province of Trento, Italy), we have been investigating, defining and applying a range of techniques for the analysis, testing and restructuring of Web applications. Our purpose is to assess the quality of Web applications during their development and evolution. The results of the analyses can be used to check whether a Web application satisfies suitable constraints, and to detect possible anomalies. The goal of testing is to improve the quality of the Web application and expose possible failures, that is, deviations of the application from the intended behaviour. The restructuring activity aims to improve certain quality factors of the Web application without changing its external behavior.
The approach we have adopted is based on reverse engineering. Unlike the more traditional forward engineering approach, we move from the assumption that a Web application already exists. Our starting point is therefore the actual implementation of the Web application (Web pages, server programs, forms, frames etc), and our techniques work on the abstract models that we derive from the implementation. This approach is also based on the observation that several well-established methods for the analysis, testing and restructuring of traditional software systems already exist, and these can be adapted to Web applications (see Figure 1).
|
Figure 1: Reverse engineering through the application of software engineering techniques. |
|
Our work is divided into three parts:
- the development of models and views of Web applications that can accommodate static as well as dynamically generated entities
- the application of a variety of analyses, restructuring and testing techniques to these models
- empirical studies on real-world applications.
As a necessary component of our experimental work, two research prototype tools, ReWeb and TestWeb (see Figure 2), consisting of a number of software modules, have been built to implement a range of analyses/restructuring techniques and to support application developers in testing activities.
|
Figure 2: ReWeb and TestWeb. |
|
The main contributions of our work extend in several directions:
- modelling and model extraction of dynamic Web applications
- structural and evolution analysis
- Web application slicing
- structural and statistical testing
- multilingual Web site restructuring
- migration of static Web sites to dynamic Web applications
- Web application understanding: producing abstract views.
Many interesting developments and extensions of the proposed techniques and tools are possible. We are currently working on Web application testing; in particular we are collecting data in order to define a fault model for Web applications. Our goal is to verify the fault detection abilities of the various testing techniques.
At present, we are completely rewriting ReWeb and TestWeb using HttpUnit (a Java framework which provides a library for implementing a Spider and automated test scripts for Web applications). This restructuring was necessary for many reasons. The original Spider did not use a fully fledged parser, and support for cookies and Javascript was limited with the consequence that the models extracted were in some cases partial. Moreover, the testing process was overly complex and the test cases were not expressed in the Java language.
The new versions of ReWeb and TestWeb will be available for research purposes soon. Further information can be found on our Web site.
Links:
http://star.itc.it/
Please contact:
Filippo Ricca, ITC-irst, Trento, Italy
Tel: +39 0461 314 522
E-mail: riccaitc.it
Paolo Tonella, ITC-irst, Trento, Italy
Tel: +39 0461 314 524
E-mail: tonellaitc.it
|