===========================================================

Web Quality

Homework and slides ¡New! (25/07/03)
homework.ppt (746 KB)
webquality.ppt (3, 6 MB)

Luciano Baresi. Dipartimento di Elettronica e Informazione Politecnico di Milano piazza Leonardo da Vinci, 32 - 20133 Milano (Italy).    baresi@elet.polimi.it    17th April 2003

1. Rational and aims: Modern Web applications are complex distributed systems that use the Web as the interaction means and the Internet as the communication infrastructure. They offer both pages, through which the user can navigate, and services, with which the user can interact: We can buy goods, make reservations for hotel rooms or tickets, and trade on stock markets. Several companies already view Web applications as a key component to deliver quality services to their customers. The intertwining between hypertextual information repositories and business models is transforming Web application from the definition of a set of hypertexts to a complex software engineering task. Practical experience on Web development shows that there are significant differences between traditional software applications and Web applications: Their requirements, contents, and functionality change continuously. We cannot apply traditional software engineering approaches unchanged, but Web applications call for special-purpose disciplined approaches. In the context of these approaches, we propose a short course on designing and assessing the quality of these applications. The aim is not to present general-purpose testing techniques, but we intend to set the problem, identify the different dimensions that should be used to tackle the problem (for example, usability, load and stress, functionality, pages), and propose available solutions. We do not want to limit our attention to test and analysis only, but we would like to start from design: design for quality, architectural design for the Web, and see testing as a consequence of good design.

2. Prerequisites: This course does not impose any specific prerequisite. Needless to say, a general idea of the Web, Web applications, and object-orientation would allow the attendees to better understand the course.

3. Organization: The course can be divided in two main parts: design and validation. The former part introduces all concepts that are then used by the latter, but concentrates also on important topics like architectures for Web applications, design for quality, and usability of the Web. The latter part presents methodologies and tools to validate developed applications. These methodologies can be used as an a-posteriori estimation of what available, but also as a means to design new applications better. This part also describes available tools by concentrating on freeware/open source software.

4. Main topics: If we consider that the course is organized in five classes of three hours, we can imagine a rough distribution of the contents as follows:

Class 1: Introduction. Definition of classes of Web applications. Architectures for Web applications. Brief survey of available technology. This class introduces the key concepts of the whole course: We define what a Web application is. Besides identifying the different components, we also discuss a simple taxonomy of Web applications. The different classes of applications – along with available technology – impose precise choices as early as at the architectural level. A thorough discussion of the possible alternatives, matched with available technology, is important to understand these applications better.

Class 2: Design for quality: documentation, assertions, and other techniques. Usability of Web applications. This class presents the main concepts that should always belong to a principled design. Besides a clear and neat architecture, we need to apply other methodology to stress and foster the quality of our applications: not only in terms of validation, but also as far as maintenance is concerned.

Class 3: Testing vs. analysis. Page testing. Usability test. Load and stress testing. This class introduces the main validation dimensions that are typical to Web applications. The strange intertwine between pages and services imposes a detailed validation of the page structure both in terms of usability and accessibility. We also need to distinguish between analysis and testing to present what they offer along with their limits. The other important dimension is the capability of supporting several different users with/without decreased performance. Load testing is a key instrument to access these properties.

Class 4: Functional testing. Black-box and white-box testing. This class describes the classical methods for functional testing and analysis. It is the most conventional class in the set. We will introduce the usual black- and white-box testing techniques, along with some interesting analysis technique. All these concepts will be set in the framework supplied by Web applications.

Class 5: Tools and process. Currently known tools are: jUnit, httpUnit, Cactus, jMeter. This class concentrates on available tools to support the methodologies and best practices presented in the previous classes. Given the availability of many different tools, we prefer to concentrate on freeware and open-source software to give the user a chance to experiment with what presented without any burden.

All arguments will be presented by following the same structure: main concepts, examples and case studies, and final considerations and suggestions.

CV of proposer:

Luciano Baresi is assistant professor at Dipartimento di Elettronica e Informazione at Politecnico di Milano, where he got both his Laurea degree and Ph.D. in Computer Science. Luciano Baresi was also junior researcher at Cefriel (a research consortium among technical universities and companies in Milan) and visiting professor at University of Oregon at Eugene (USA) and University of Paderborn (Germany). Luciano has published and presented some 30 papers on the most important national and international journals and conferences. Luciano served as program co-chair of ICECCS 2002 (International Conference on Engineering Complex Computer Systems) and of GT-VMT’2001 (International Workshop on Graph Transformation and Visual Modeling Techniques, co-located with ICALP) and as PC member for some other conferences. He will also serve as program co-chair of UMICS’03, a CAiSE workshop on Ubiquitous Mobile Information and Collaboration Systems, and of the WISE’03 workshop on Multi-channel Information Systems. A more detailed curriculum vitae and the list of publications can be found at the following address: www.elet.polimi.it/people/baresi

===========================================================