|
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/
|