JWE Abstracts 

Vol.8 No.4 December 1, 2009    Web Application Evolution

Editorial (pp285-286)
        Shihong Huang and Massimiliano Di Penta

Research Articles:
Performance Testing of Data Delivery Techniques for AJAX Applications (pp287-315)
        Engin Bozdag, Ali Mesbah, and Arie van Deursen
AJAX applications are designed to have high user interactivity and low user-perceived latency. Real-time dynamic web data such as news headlines, stock tickers, and auction updates need to be propagated to the users as soon as possible. However, AJAX still suffers from the limitations of the Web's request/response architecture which prevents servers from pushing real-time dynamic web data. Such applications usually use a pull style to obtain the latest updates, where the client actively requests the changes based on a predefined interval. It is possible to overcome this limitation by adopting a push style of interaction where the server broadcasts data when a change occurs on the server side. Both these options have their own trade-offs. This paper first introduces the characteristics of both pull and push approaches It then presents the design and implementation of our distributed test framework, called \tool, where different AJAX applications based on each approach can be automatically tested on. Finally, we present and discuss the results of our empirical study comparing different web-based data delivery approaches.

An Empirical Validation of a Web Fault Taxonomy and its Usage for Web Testing (pp316-345)
        Alessandro Marchetto, Filippo Ricca, and Paolo Tonella
Web testing is assuming an increasingly important role in Web engineering, as a result of the quality demands put onto modern Web-based systems and of the complexity of the involved technologies. Most of the existing works in Web testing are focused on the definition of novel testing techniques, while only limited effort was devoted to understanding the specific nature of Web faults. However, the performance of a new Web testing technique is strictly dependent on the classes of Web faults it addresses. In this paper, we describe the process followed in the construction of a Web fault taxonomy. We used an iterative, mixed top-down and bottom-up approach. An initial taxonomy was defined by analyzing the high level characteristics of Web applications. Then the taxonomy was subjected to several iterations of empirical validation. During each iteration the taxonomy was refined by analyzing real faults and mapping them onto the appropriate categories. Metrics collected during this process were used to ensure that in the final taxonomy bugs distribute quite evenly among fault categories; fault categories are not-too-big, not-too-small and not ambiguous. Testers can use our taxonomy to define test cases that target specific classes of Web faults, while researchers can use it to build fault seeding tools, to inject artificial Web faults into benchmark applications. The final taxonomy is publicly available for consultation: since it is organized as a Wiki page, it is also open to external contributions. We conducted a case study in which test cases have been derived from the taxonomy for a sample Web application. The case study indicates that the proposed taxonomy is very effective in directing the testing effort toward those test scenarios that have higher chances of revealing Web specific faults.

An Investigation of Clustering Algorithms in the Comprehension of Legacy Web Applications (pp346-370)
        Andrea De Lucia, Michele Risi, Giuseppe Scanniello, and Genoveffa Tortora
In this paper we investigate the effect of using clustering algorithms in the reverse engineering field to identify pages that are similar either at the structural level or at the content level. To this end, we have used two instances of a general process that only differ for the measure used to compare web pages. In particular, two web pages at the structural level and at the content level are compared by using the Levenshtein edit distances and Latent Semantic Indexing, respectively. The static pages of two web applications and one static web site have been used to compare the results achieved by using the considered clustering algorithms both at the structural and content level. On these applications we generally achieved comparable results. However, the investigation has also suggested some heuristics to quickly identify the best partition of web pages into clusters among the possible partitions both at the structural and at the content level.

Systematic Improvement of Web Applications Design (pp371-404)
        Alejandra Garrido, Gustavo Rossi, and Damiano Distante  
Web applications are usually characterized by a rapid development process and continuous evolution. This evolution implies growth of the graph of pages and navigation paths, as well as new functionality and new data made available to the user. Measurement of the system usability, periodic or after a time of growth, is crucial to the system's evolution in the line of design maturity and to prevent the system from decay. This kind of evolution is one of the main practices of agile methods, in which design improvement occurs daily during development and often during maintenance.In this paper we propose a list of changes for the design models of a Web application and when they may be applied, in order to improve the application's usability while preserving its functionality. The purpose of the proposed changes is to improve the maturity of the design instead of adding new features; we call them Web design improvements. This paper starts a catalogue of Web design improvements for the navigation and presentation models of a Web application. Since changing these models has direct impact on the user experience with the application, our Web design improvements aim at improving the external quality and user experience.

Back to JWE Online Front Page