LECTURE 8
TESTING WEB APPLICATIONS
Dr. Asmau Usman Nile University of Nig.
Introduction
➢ There is an urgency that always
pervades a WebApp project.
➢ Stakeholders—concerned about
competition from other WebApps,
forced by customer demands, and
worried that they’ll miss a market
window—press to get the WebApp
online.
10
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ As a consequence, technical activities that
often occur late in the process, such as
WebApp testing, are sometimes given short
shrift. This can be a serious mistake.
➢ To avoid it, you and other team members
must ensure that each work product exhibits
high quality.
➢ Since requirements and design models
cannot be tested in the classical sense, you
and your team should conduct technical
reviews as well as executable tests.
➢ The intent is to detect and correct errors
before the WebApp is made available to its
end users.
Dr. Asmau Usman Nile University of Nig.
Cont.,
What is it? Who does it?
➢ WebApp testing is a ➢ Web engineers and other
collection of related project stakeholders
(managers, customers, end
activities with a single
users) all participate in
goal: WebApp testing.
➢ To uncover errors in
WebApp content, Why is it important?
function, usability, ➢ If end users encounter errors
navigability, performance, that shake their faith in the
WebApp, they will go
capacity and security.
elsewhere for the content and
➢ To accomplish this, a function they need, and the
testing strategy that WebApp will fail.
encompasses both reviews ➢ For this reason, you must work
and executable testing is to eliminate as many errors as
applied. possible before the WebApp
goes online.
Dr. Asmau Usman Nile University of Nig.
Cont.,
What are the steps? What is the work product?
➢ The WebApp testing ➢ In some instances a WebApp test
process begins by plan is produced.
➢ In every instance, a suite of test
focusing on user-visible
cases is developed for every
aspects of the WebApp
testing step and an archive of test
and proceeds to tests that results is maintained for future use.
exercise technology and
infrastructure. How to ensure I’ve done it right?
➢ Seven testing steps are ➢ Although you can never be sure
performed: content that you’ve performed every test
that is needed, you can be certain
testing, interface testing,
that testing has uncovered errors
navigation testing,
(and that those errors have been
component testing, corrected).
configuration testing, ➢ In addition, if you’ve established a
performance testing and test plan, you can check to ensure
security testing. that all planned tests have been
conducted.
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ Testing is the process of exercising software
with the intent of finding (and ultimately
correcting) errors.
➢ This fundamental philosophy, does not
change for WebApps.
➢ In fact, because Web-based systems and
applications reside on a network and
interoperate with many different operating
systems, browsers (or other personal
communication devices), hardware
platforms, communications protocols, and
“backroom” applications, the search for
errors represents a significant challenge.
11
Dr. Asmau Usman Nile University of Nig.
Dimensions of Quality
➢ Quality is incorporated into a Web
application as a result of good design.
➢ It is evaluated by applying a series of
technical reviews that assess various
elements of the design model and by
applying a testing process that is
discussed throughout in previous
lectures.
Dr. Asmau Usman Nile University of Nig.
Dimensions of Quality Cont.,
Both reviews and testing examine one or more
of the following quality dimensions:
➢ Content is evaluated at both a syntactic
and semantic level.
➢ Function is tested to uncover errors that
indicate lack of conformance to customer
requirements. functional testing includes:
➢the identification of functions that software is
supposed to do
➢data input and entry
➢the execution of the test case
➢an analysis of the actual results
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ Usability is tested to ensure that each category
of user is supported by the interface. Usability
testing involves the following steps:
➢ Develop a testing strategy that ensures all functions of
your application will be examined. These include
navigation and content.
➢ Recruit test participants, either internally or externally.
➢ Run the test under the observation of experts.
➢ Analyze the results and improve your application
accordingly.
➢ Navigability is tested to ensure that all
navigation syntax and semantics are exercised
to uncover any navigation errors.
Dr. Asmau Usman Nile University of Nig.
Dimensions of Quality cont.,
➢ Performance is tested under a variety
of operating conditions,
configurations.
➢ Compatibility is tested by executing
the WebApp in a variety of different
host configurations on both the client
and server sides.
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ Interoperability is tested to ensure that
the WebApp properly interfaces with
other applications and/or databases.
➢ Security is tested by assessing potential
vulnerabilities and attempting to exploit
each.
➢ A strategy and tactics for WebApp
testing has been developed to exercise
each of these quality dimensions.
Dr. Asmau Usman Nile University of Nig.
Errors within a WebApp Environment
➢ Errors encountered as a consequence of
successful WebApp testing have a number
of unique characteristics:
1. Because many types of WebApp tests uncover
problems that are first evidenced on the client side
(i.e., via an interface implemented on a specific
browser or a personal communication device), you
often see a symptom of the error, not the error itself.
2. Because a WebApp is implemented in a
number of different configurations and within
different environments, it may be difficult or
impossible to reproduce an error outside the
environment in which the error was originally
encountered.
Dr. Asmau Usman Nile University of Nig.
Cont.,
3. Although some errors are the result of
incorrect design or improper HTML coding,
many errors can be traced to the WebApp
configuration.
4. Because WebApps reside within a client-
server architecture, errors can be difficult to
trace across three architectural layers: the
client, the server, or the network itself.
5. Some errors are due to the static
operating environment while others are
attributable to the dynamic operating
environment.
13
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ These five error attributes suggest that
environment plays an important role in the
diagnosis of all errors uncovered during the
WebApp testing.
➢ In some situations (e.g., content testing), the
site of the error is obvious, but in many other
types of WebApp testing (e.g., navigation
testing, performance testing, security
testing) the underlying cause of the error
may be considerably more difficult to
determine.
Dr. Asmau Usman Nile University of Nig.
Testing Strategy
➢ The strategy for WebApp testing adopts the
basic principles for all software testing and
applies a strategy and tactics that have
been recommended for object-oriented
systems.
➢ The following steps summarize the approach:
➢ The content model for the WebApp is reviewed to
uncover errors.
➢ The interface model is reviewed to ensure that all
use cases can be accommodated. is tested to
uncover errors in presentation and/or navigation
method.
➢ The design model for the WebApp is reviewed to
uncover navigation errors.
14
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ Selected functional components are unit tested.
➢ Navigation throughout the architecture is tested.
➢ The WebApp is implemented in a variety of
different environmental configurations and is
tested for compatibility with each configuration.
➢ Security tests are conducted in an attempt to
exploit vulnerabilities in the WebApp or within its
environment.
➢ Performance tests are conducted.
The WebApp is tested by a controlled and monitored
population of end users; the results of their interaction
with the system are evaluated for content and
navigation errors, usability concerns, compatibility
concerns, and WebApp security, reliability, and
performance.
Dr. Asmau Usman Nile University of Nig.
The Testing Process :— An
Overview
➢ The WebApp testing process begin with tests
that exercise content and interface
functionality that are immediately visible to
end users.
➢ As testing proceeds, aspects of the design
architecture and navigation are exercised.
➢ Finally, the focus shifts to tests that examine
technological capabilities that are not
always apparent to end users such as;
WebApp infrastructure and
installation/implementation issues.
Dr. Asmau Usman Nile University of Nig.
Content Testing
➢ Errors in WebApp content can be as trivial as minor
typographical mistakes or as significant as
incorrect information, improper organization, or
violation of intellectual property laws.
➢ Content testing attempts to uncover these and
many other problems before the user encounters
them.
➢ Content testing combines both reviews and the
generation of executable test cases.
➢ Review is applied to uncover semantic errors in
content.
➢ Executable testing is used to uncover content
errors that can be traced to dynamically derived
content that is driven by data acquired from one
or more databases.
Dr. Asmau Usman Nile University of Nig.
Content Testing Objectives
➢ Content testing has three important
objectives:
1. To uncover syntactic errors in text-based
documents, graphical representations, and
other media;
2. To uncover semantic errors in any content
object presented as navigation occurs, and
3. To find errors in the organization or structure
of content that is presented to the end user.
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ To accomplish the first objective, automated
spelling and grammar checkers may be used.
➢ However, many syntactic errors escape
detection by such tools and must be
discovered by a human reviewer (tester).
➢ Semantic testing focuses on the information
presented within each content object.
➢ In content testing, the structure and
organization of the content architecture is
tested to ensure that required content is
presented to the end user in the proper order
and relationships.
15
Dr. Asmau Usman Nile University of Nig.
User Interface Testing
➢ Verification and validation of a WebApp user
interface occurs at three distinct points.
i. During requirements analysis, the interface model
is reviewed to ensure that it comply to stakeholder
requirements and to other elements of the
requirements model.
ii. During design the interface design model is
reviewed to ensure that generic quality criteria
established for all user interfaces have been
achieved and that application-specific interface
design issues have been properly addressed.
iii. During testing, the focus shifts to the execution of
application-specific aspects of user interaction as
they are manifested by interface syntax and
semantics.
Dr. Asmau Usman Nile University of Nig.
Interface Testing
➢ What is Interface Testing?
➢ Interface Testing is a type of software
testing, which verifies the communication
between two software systems.
➢ It is the testing that is done to verifies
whether the communication between two
different software systems is done
correctly.
➢ It checks the authentication of the
connection established.
Dr. Asmau Usman Nile University of Nig.
Interface Testing Strategy
➢ Interface testing exercises interaction
mechanisms and validates attractive
aspects of the user interface.
➢ The overall strategy for interface testing
is to;
1. Uncover errors related to specific interface
mechanisms.
2. Uncover errors in the way the interface
implements the semantics of navigation,
WebApp functionality, or content display.
Dr. Asmau Usman Nile University of Nig.
Interface Testing Steps
➢ To accomplish this strategy, a number of
planned steps are initiated:
➢ Interface features are tested to ensure that
design rules, attractive, and related visual
content are available for the user without error.
➢ Each interface mechanism is tested within the
context of a use case for a specific user
category.
➢ The complete interface is tested against selected
use cases to uncover errors in the semantics of
the interface.
➢ The interface is tested within a variety of
environments (e.g., browsers) to ensure that it will
be compatible.
Dr. Asmau Usman Nile University of Nig.
Testing Interface Mechanisms
➢ When a user interacts with a WebApp,
the interaction occurs through one or
more interface mechanisms.
➢ Testing considerations for each interface
mechanism is are as follows.
Links: links within each content object must be
exercised to uncover bad URLs or links to improper
content objects or functions.
Forms: the server receives all information contained
within the form and that no data are lost in the
transmission between client and server.
Client-side scripting: test should be conducted to
ensure that the scripting language that has been
chosen will work properly in the environmental
configurations that support the WebApp.
Dr. Asmau Usman Nile University of Nig.
Testing Interface Mechanisms Cont.,
Dynamic HTLM(DHTML): test should be
conducted to ensure that the dynamic
HTML works properly in the environmental
configurations that support the WebApp.
Pop-up windows: tests ensure that the pop-
up is properly sized and positioned.
Dr. Asmau Usman Nile University of Nig.
Component-level Testing
➢ Component-level testing, also called
function testing, focuses on a set of tests
that attempt to uncover errors in
WebApp functions.
➢ Each WebApp function is a software
module (implemented in one of a
variety of programming or scripting
languages) and can be tested using
black-box (and in some cases, white-
box) techniques.
➢ It is often driven by forms-level input.
➢ Once forms data are defined, the user
selects a button or other control
mechanism to initiate execution.
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ Equivalence partitioning, boundary
value analysis (Forms data are tested
at their boundaries), and path testing
can be adapted for use in testing
forms-based input and the
functionality that is applied to it. used
to ensure that every independent
path in the program has been
exercise.
Dr. Asmau Usman Nile University of Nig.
Cont.,
➢ In addition to these test-case
design methods, a technique
called forced error testing is used
to derive test cases that purposely
drive the WebApp component
into an error condition.
➢ Each component-level test case
specifies all input values and the
expected output to be provided
by the component.
Dr. Asmau Usman Nile University of Nig.
Other form of testing for WebApp
1. Navigation testing: to ensure that the mechanisms that allow
the WebApp user to travel through the WebApp are all
functional and to validate that each navigation semantic unit.
2. Configuration testing: it is to test a set of probable client-side
and server-side configurations to ensure that the user
experience will be the same on all of them and to isolate errors
that may be specific to a particular configuration
3. Security testing: Security tests are designed to probe
vulnerabilities of the client-side environment, the network
communications that occur as data are passed from client to
server and back again, and the server-side environment.
4. Performance testing: is used to uncover performance problems
that can result from lack of server-side resources, inappropriate
network bandwidth, inadequate database capabilities, faulty
or weak operating system capabilities.
Dr. Asmau Usman Nile University of Nig.
Summary
➢ Testing focuses on content, function, structure,
usability, navigability, performance, compatibility,
interoperability, capacity, and security.
➢ It incorporates reviews that occur as the WebApp is
designed, and tests that are conducted once the
WebApp has been implemented.
➢ The WebApp testing strategy exercises each quality
dimension by initially examining “units” of content,
functionality, or navigation.
➢ Once individual units have been validated, the focus
shifts to tests that exercise the WebApp as a whole.
27
Dr. Asmau Usman Nile University of Nig.
Cont.,
To accomplish this, many tests are
derived from the user’s perspective and
are driven by information contained in
use cases.
A WebApp test plan is developed and
identifies testing steps, work products
(e.g., test cases), and mechanisms for
the evaluation of test results. The testing
process encompasses seven different
types of testing.
Dr. Asmau Usman Nile University of Nig.
Cont.,
Content testing (and reviews) focus on various
categories of content. The intent is to uncover
both semantic and syntactic errors that affect
the accuracy of content or the manner in
which it is presented to the end user.
Interface testing exercises the interaction
mechanisms that enable a user to
communicate with the WebApp and
validates visual aspects of the interface. The
intent is to uncover errors that result from
poorly implemented interaction mechanisms
or from omissions, inconsistencies, or
uncertainties in interface semantics.
Dr. Asmau Usman Nile University of Nig.
Navigation testing applies use cases, derived
as part of the modeling activity, in the design of
test cases that exercise each usage scenario
against the navigation design.
Navigation mechanisms are tested to ensure
that any errors impeding completion of a use
case are identified and corrected. Component
testing exercises content and functional units
within the WebApp.
Dr. Asmau Usman Nile University of Nig.
Dr. Asmau Usman Nile University of Nig.
NEXT L
Next Topic:
THANKS
Dr. Asmau Usman Nile University of Nig.