Software QA FYI - SQAFYI

Modeling and Testing Web-based Applications

By: Ye Wu and Jeff Offutt

The Internet is quietly becoming the body of the business world, with web applications as the brains. This means that software faults in web applications have potentially disastrous consequences. Most work on web applications has been on making them more powerful, but relatively little has been done to ensure their quality. Important quality attributes for web applications include reliability, availability, interoperability and security. Web applications share some characteristics of client-server, distributed, and traditional programs, however there are a number of novel aspects of web applications. These include the fact that web applications are “dynamic”, due to factors such as the frequent changes of the application requirement as well as dramatic changes of the web technologies, the fact that the roles of the clients and servers change dynamically, the heterogeneity of the hardware and software components, the extremely loose coupling and dynamic integration, and the ability of the user to directly affect the control of execution.

In this paper, we first analyze the distinct features of web-based applications, and then define a generic analysis model that characterizes the typical behaviors of web-based applications independently of different technologies. Based on this analysis, a family of testing techniques is discussed to ensure different level of quality control of web applications under various situations.

1 Introduction
Driven by the extreme demands of the business world and enthusiasm of the public, the internet has become indispensable to business, education, and even our personal lives. Thus malfunctions of the internet or in applications built on it can cause serious damages. For example, a glitch during an unscheduled maintenance at Amazon.com in 1998 put the site offline for several hours, with an estimated cost as high as $400,000. Even more costly, the relationship between customers and the company can be seriously damaged by such outages; the users do not care why the outage happened, all they know is that the web site does not offer good service. Therefore, methodologies for adequately analyzing, constructing, understanding, testing and maintaining web applications will be essential, not only to the internet industry, but to American industry and commerce as a whole.

During the early days of the internet, it was primarily a typical client-server configuration with little flexibility or scalability that supported limited functionality and supported simple applications. In the last few years, this situation has dramatically changed. An “N-tier” model has been widely adopted to significantly improve quality factors such as scalability, flexibility, functionality, and availability. There are also a number of new technologies that are used in web applications. Nevertheless, nothing comes without cost. The techniques used to increase flexibility will also increase complexity, and the rapidly evolving technology provides new challenges to the techniques used to develop software. Questions of how to analyze, represent, test and maintain these types of applications have yet to be answered.

This paper first analyzes key differences between web-based applications and traditional software. One of the most difficult problems is the “dynamic” nature of web-based applications. This includes the rapidly changing technologies, frequent changes of user requirements, and dynamic aspects of the software technologies. These dynamic features can introduce several difficulties. For example, changes in technology may necessitate changes to analysis, testing and maintenance methodologies and tools. This paper proposes an analysis model that captures the dynamic features of web-based applications, and models the behavior in a technology independent way. This paper focuses on Java servlet-based web software, but the model is intended to apply to other technologies as well. The model first identifies the basic interaction unit between web servers and clients as atomic sections, which contain structural information with dynamic content. Then a complete interaction is modelled using compositions and transitions of these atomic sections. The paper is organized as follows. The second section compares web applications with traditional software systems, then briefly reviews some of the existing modeling and testing techniques for web-based applications. Section 3 provides a technology independent model for web applications, and Section 4 discusses using the analysis model to test web-based applications. We offer conclusions and future research directions in Section 5.

2 Challenges and Related Work
One of the interesting challenges of web software is that web software has been found to have extremely high quality requirements [13]. Much of the software industry has been able to succeed with relatively low quality requirements; the combination of user expectations and market realities have been such that high quality usually has not increased profits. A combination of time-tomarket and marketing strategies have almost always determined whether traditional software products succeed competitively. However, there appears to be little or no brand-name loyalty (that is, “site loyalty”) for web applications. This means that if company A puts up a web site first, and B joins the market later, if users perceive B’s site to be of higher quality then they will very quickly migrate to B’s web site. That is, it is often better to be “later and better” rather than “sooner but worse”.

This puts a great responsibility on the designers, developers, and testers to ensure that the web software exhibits very high reliability, usability, and security. These quality factors will have a much stronger impact on company profits than for most “traditional” software. There are additional factors. For example, whereas a corner drug store (“brick and mortar”) might expect to have customers form the neighborhood Monday through Saturday, 8:00 AM to 7:00 PM, a web-based company can expect customers from all over the world. It might be 3:00 in the morning in Virginia, but it’s the middle of the afternoon in Beijing! Thus, web sites must have extremely high availability, not just 24/7, but 24/7/365. Another key difference is that, unlike shrink-wrap software applications, web-based applications do not have to be sold or distributed when updates are made. This, together with the rapid evolution of technology, means that maintainability is crucial for web software. Finally, unlike traditional businesses whose potential customers is typically limited by physical concerns such as geography and traffic, growth in web-based businesses has unlimited potential – there are currently hundreds of millions of users on the web, each of whom is only a click away and therefore “in the neighborhood” of the store. This means that web software must be highly scalable and ready to grow in terms of servers, services, and customers very quickly.

These high quality requirements bring new and interesting challenges to web software developers. This section first identifies these challenges, and then discusses some of the early research that has tried to develop ways to assure the quality of software that is used for web applications.

2.1 Challenges
Tremendous effort has been expended to assure the quality of traditional programs, resulting in testing techniques for both stand-alone and distributed systems. Although some of these techniques can be used to help assure the quality of web applications, some of the special features and requirements of web applications prevent them from being directly adopted. These challenges are summarized below.
1. The overall architecture of web applications are similar to client-server systems in many aspects, but there is a key difference. In traditional client-server systems, the respective roles of the clients and servers and their interactions are predefined and static. In web applications, however, client side programs and contents may be generated dynamically. For example, a server may return a dynamically generated HTML file that contains dynamically generated Javascripts, links and contents. This means that the subsequent interactions between the client and server depend on the previous inputs.
2. For traditional programs, correctness and efficiency are usually the most important quality factors. For web applications, other quality features can often be more important and yet we have few techniques for supporting them. For example, compatibility and interoperability are urgent and cause problems that are more serious than with traditional programs. Traditional programs are usually developed for a certain predefined, well understood environment, with very few conflicts and changes. Web applications often are affected by factors that may cause incompatibility and interoperability issues. For example, server components can be distributed to different operating systems, such as UNIX, Linux, Windows, MacOS, and AIX, each of which has multiple versions, and run with different web server packages, including IIS from Microsoft, Apache, WebLogic from IBM and others. The situation is even more complex on the client side, with different versions of web browsers running under a variety of operating systems. Clients may also use different connection approaches, such as dial-up modems, direct internet access or wireless, and may also use different ISP providers. All of this heterogeneity makes it harder to produce web application components that are compatible with one another and that inter-operate easily and correctly.

Full article...


Other Resource

... to read more articles, visit http://sqa.fyicenter.com/art/

Modeling and Testing Web-based Applications