Tutorial:
An Introduction to Web Quality

Munich (Germany), July 26, 2004

In conjunction with ICWE 04 - International Conference on Web Engineering

 

Instructors

Luciano Baresi
Politecnico di Milano - Milano (Italy)
baresi@elet.polimi.it

Sandro Morasca
Università dell'Insubria - Como (Italy)
sandro.morasca@uninsubria.it

Abstract

Like in all other engineering and software engineering areas, quality is a central aspect for processes and products in Web engineering. From a product-oriented perspective, Web sites and applications are often built for a large number of users with different knowledge and backgrounds. In many cases, usability, robustness, and performance become even more important than usual quality dimensions, like correctness and reliability. From a process-oriented perspective, the ferocious competition in the field calls for cost reduction and shorter and shorter times to market.

As a consequence, quality dimensions need to be extended to address the peculiarities of the Web and quality assurance activities must be tailored to its new needs. Quality can be measured on products and enforced by processes. It should be pursued along the entire development process and should address all artifacts produced during the development of Web applications. It is believed that different development techniques improve different product qualities which can be measured via a number of indicators whose combination can provide a comprehensive assessment of quality.

To this end, the tutorial will define the concept of quality -- with respect to Web applications -- and discuss the two sides of the problem: product vs. process and measurement vs. test and analysis. The first part will describe Web engineering measurement and show how it can be used for the evaluation and prediction in industrial Web engineering environments. The second part will present different techniques for testing Web applications and analyzing their many aspects. Several concepts and techniques can be borrowed from classical software test and analysis, but the unique features that characterize Web applications require both ad-hoc tailoring of available techniques and brand-new methods. Finally, the tutorial will identify the future directions for applied research in the area.

Motivations

Web engineering is now past its initial steps and it is a recognized field of computer science, with a deep impact on all sectors of human activities. More and more aspects of our lives are controlled by and depend on Web-based applications, for example, e-health and e-government are just two macro-areas where Web applications are employed to deliver sophisticated and better services to the user. The more "critical" the application becomes, the more emphasis must be placed on its quality. If we think of a virtual visit to the Louvre museum, we simply want a fast and usable way to navigate the different rooms, but if we use our online bank account, usability and performance must be complemented with reliability, correctness, and robustness. In general, a set of different qualities must be taken into account when building, analyzing, or evaluating a Web application, in addition to correctness, which is still of crucial importance in Web application.

Needless to say, quality services can be delivered only by means of quality applications. Thus, clear and neat quality indicators, along with sustainable techniques to assess and enforce them, are of key importance for the future. It is a fact that around 30% of software projects do not terminate with a deliverable product and that 50% of software projects take around twice the resources that were initially budgeted. Even though these figures are based on data coming from software engineering projects in general, the situation is certainly not much better for Web engineering, so a sound and well-defined approach to quality for Web applications is necessary. The "code\&fix" era is over, and we now need good and sound quality-oriented processes to deliver our Web applications.

Quality must be assessed, managed, and enforced. Sound product quality management requires empirical evidence to assess strengths and weaknesses of methods and techniques, confirm or disconfirm their expected benefits, and show improvement over time. Sound project management requires quantitative information to assess the status of a project while it is executed, take adequate corrective actions if necessary, and make predictions on the rest of the project to reduce the risks of schedule slippage, project failure, and poor product quality.

Useful information about the several qualities of Web products and processes can be obtained by carrying out a number of measurement activities on artifacts and phases along the entire development process. It is well known that the quality of the final products depends on the quality of the artifacts produced in the previous phases. At any rate, like in most software engineering applications, testing and analysis of delivered artifacts, which are the "usual" techniques used to monitor the quality of delivered artifacts, play a key role. Sound development processes must always pay attention to test and analysis activities, which must be carefully planned, adequately integrated into the development process, and proficiently supported by tools. The information obtained via measurement is the spark to plan and optimize the different activities. Notice that, in this context, test and analysis are not aimed only at assessing the functional correctness of the application, but we must plan special-purpose activities to probe the usability and accessibility of the application and its capability of serving unforeseen loads within a reasonable time frame.

Objectives

The tutorial will provide the participants with:

  • A clear definition of quality dimensions for Web applications and their differences with respect to other software systems;
  • An organized overview of the state of the art of software measurement, focused on both the empirical and practical aspects, and an overview of the existing quantitative studies that involve Web engineering applications;
  • Practically usable guidelines for carrying out experimental, pilot studies and later introducing measurement in industrial Web engineering environments in a rigorous, sensible way.
  • The identification of quality-related activities in conventional software processes with special emphasis on the development of Web applications;
  • Practically usable techniques to test and analyze produced artifacts. Test and analysis are seen as two complementary techniques that must be part of any development process;
  • A detailed overview of available tools for automate measurement, testing and analysis.

Participants and Their Background

This tutorial is open to all software practitioners, managers, and researchers who want to learn more about quality of Web applications in general, but who also want to have a detailed overview of measurement, test, and analysis of Web applications. The participants should have a basic background in computer science and mathematics and be aware of what Web application are.

The tutorial is designed in such a way that no special previous knowledge is required.

Outline

Total duration: 1 day

  • Introduction, overview, and motivations (15')
  • Measurement
    • Basic concepts of software engineering measurement: terminology, the importance of correctly measuring relevant entities and attributes, and the appropriate statistical techniques for correct decision making (30')
    • Existing approaches to evaluating and predicting Web engineering product and process qualities (1h30'):
      • quality assessment and estimation, including existing international standards
      • cost estimation
      • Function Points and their adaptations to Web engineering
    • Introducing measurement programs in industrial organizations (45')
      • goal-driven measurement: the Goal/Question/Metric paradigm
      • an organizational framework: the Experience Factory
      • a process for introducing measurement programs
  • Test and analysis
    • Basic concepts of software test and analysis: terminology, the importance of test and analysis, test vs. analysis, and the different T&A activities (1h15')
      • T&A and development process: impact on development processes, key activities, and organizational issues
      • Common activities: functional vs. structural test, how do we derive test cases, inspection
    • Usability and accessibility (25')
      • what can we test and analyze?, usability test, accessibility standards accessibility analysis (test)
    • Functional T&A (35')
      • front-end vs. back-end, introduction to conventional software test, testing component-based software, testing object-oriented software, coverage criteria
    • Load, performance, and stress test (15')
      • load, performance, and robustness, scripts and simulated users, collected information and analysis of results
  • Tools (20')
  • Conclusions (10')

About the Speakers

Luciano Baresi is an associate professor at Dipartimento di Elettronica e Informazione at Politecnico di Milano, where he earned both his Laurea degree and Ph.D. in Computer Science. He also was junior researcher at Cefriel (a research consortium among technical universities and industry in the Milan area) and visiting professor at University of Oregon at Eugene (USA), University of Paderborn (Germany), and University of Buenos Aires (Argentina).

Luciano has published and presented some 40 papers on the most important national and international journals and conferences. He served as program co-chair of ICECCS 2002 (International Conference on Engineering Complex Computer Systems), GTVMT 2001 (International Workshop on Graph Transformation and Visual Modeling Techniques, co-located with ICALP), UMICS 2003 (the CAiSE workshop on Ubiquitous Information and Communication Systems), and the WISE workshop on Mobile and Multichannel Information Systems. He has been also PC member for several conferences and this year is PC member of WWW, ICWE, SAC, and GT-VMT. Luciano's research interests are on Web engineering, with special emphasis on modeling complex applications, validation, and quality estimation.

Sandro Morasca is a Professor of Computer Science at the Dipartimento di Scienze della Cultura, Politiche e dell'Informazione of Università degli Studi dell'Insubria in Como, Italy. In the past, he was with the Dipartimento di Elettronica e Informazione of Politecnico di Milano in Milan, Italy. He was a Faculty Research Assistant and later a Visiting Scientist at the Department of Computer Science of the University of Maryland at College Park, and a Visiting Professor at the University of Buenos Aires, Argentina. In his research and professional activities, he has investigated the theoretical and practical aspects of software measurement and software verification and validation in projects with software companies and the Public Administration. Prof. Morasca has served on the Program Committee of a number of software engineering conferences, including ICWE and METRICS, the International Workshop on Software Metrics. He will be the General Chair for METRICS 2005, which will be held in Como, Italy, in mid-September 2005. Sandro Morasca serves on the Editorial Board of "Empirical Software Engineering: An International Journal," published by Kluwer. Sandro Morasca has held several courses on software engineering measurement for software companies.