Testing Web Applications
Objectives
what to test in web applications.
How to test in a web application.
Functional and usability issues: functional testing,
usability testing, navigation testing, form testing,
and page content testing.
Configuration and compatibility testing
Reliability and availability testing
Performance testing: scalability testing, load
testing, and stress testing.
Security testing
End-to-end transaction testing
Database testing
Post implementation testing
Introduction
Web-based applications present new challenges,
both for developers and testers. These challenges
include:
Short releases cycles
Constantly changing technology
Possible huge number of users during initial website
launch
Inability to control the user’s running environment
24-hour availability of the website
Any difficulty in response time, accuracy, or ease of
use will make the user to click on a competitor's
site.
Topology of a Web Site
FF
Browser
Browser ii
rr Database
Database
Server
II Internet ee Web
Server
Web
Browser
Browser SS ww Server
Server
PP aa
ll
Browser ll Application
Browser Application
Server
Server
The Need for Web Testing
Is the site content meaningful?
Is this application easy to use?
How about browser compatibilities?
How reliable is our technology?
Do the Servers have enough power?
How many visitors are we expecting?
Are the machines fast enough?
How much activity can the site handle?
Functional and Usability
The first tests for a website should focus on the
Issues
site’s intended behavior by assessing the
following issues:
Functionality
Usability
Navigation
Forms
Page content
Why is Functionality Testing
Important?
Missing
image
Functional and Usability Issues:
Functional Testing
Functional testing involves making sure
features that most affect user interactions work
properly. These include:
Forms
Searches
Popup windows
Shopping carts
Online payments
Functional testing evaluates the content of
dynamically generated pages and verifies many
behind the scene (connections to database)
Functional and Usability Issues:
Usability Testing
Usability testing assesses the website’s user
friendliness and suitability by gathering
information about how users interact with the site.
The key to usability testing is to study what a
user actually does.
Usability testing steps:
Identify the website’s purpose
Identify the intended users
Define tests and conduct the usability testing
Analyze the acquired information
Functional and Usability Issues:
Navigation Testing
Good navigation is an essential part of a
website, especially those that are complex and
provide a lot of information.
Most users expect the following:
Easy and quick access to the information they want
Logical hierarchy of pages
Confirmation of where they are at any point
Facility to return to previous states or the homepage
Consistent look and layout of every page
Functional and Usability Issues:
Forms Testing
Websites that use forms need to be tested to
ensure that each field works properly and that the
form posts all data as intended by the designers.
Testing forms include the following actions:
Using the tab key to verify that the form traverses fields
in the proper order, both forward and backward
Testing boundary values
Checking that forms traps invalid data correctly,
especially data and numeric formats
Verifying that the form updates information correctly
Functional and Usability Issues:
Page Content Testing
Each web page must be tested for correct
content from the user perspective.
These test fall into two categories:
Ensuring that each component functions correctly
Ensuring that the content of each is correct
Configuration and Compatibility
Testing
A key challenge in web applications is ensuring
that the user sees a web page as the designer
intended:
The user can select different browser software and
browsers options.
Use different network software and online service
Run concurrent applications
Compatibility testing ensures product
functionality and reliability on the supported
browsers and platforms that exist on the
customer computer.
Configuration and Compatibility
Testing (Cont.)
Guideline for testing web applications (by
listing the platform and browser
environments to be tested).
Reliability and Availability
A key requirement of a website is that:
It is available whenever the user requests it, often 24
hours a day, every day.
The number of users accessing a website simultaneously
may also affect the site’s availability.
To assess availability, the tester must build tests
around anticipated usage spikes which can include:
For store applications: promotional campaigns and sales
For business cycles: month-end and quarter-end dates
For banking applications: direct deposit dates
During maintenance: required downtime for backups,
upgrades, and other operations.
Performance
Performance testing evaluates system
performance under normal and heavy usage.
Website performance is crucial to the
success of any web application.
Performance tests:
Scalability testing
Load testing
Stress testing
Performance: Scalability
Testing
Scalability concerns the website’s ability to
handle the volumes and types of activities
that can occur after launch.
The following types of scenarios affect
scalability:
How closely the test environment matches the
production environment
Millions of users accessing the site during launch
Activity spikes due to marketing promotions
Performance: Load Testing
The purpose of load testing is to model real
world experiences, typically by generating
many simulations users accessing the
website.
Load testing may need to be repeated at
least once.
Performance: Stress Testing
Stress testing consists of subjecting the system to
varying and maximum loads to evaluate the
resulting performance.
Stress testing can be automated. Tools can report
the following type of information:
Number of requests, transactions and kilobyte/second
Round trip time (time from the user makes a request to
the time that the users receives the result)
Number of concurrent connections
Degradation of performance
Types of visitors to the site and their number
CPU and memory usage of the application server
Security Testing
Security is a primary concern when
communicating and conducting business
especially sensitive and business critical
transactions over the internet.
Regardless whether the application requires
the user to enter a password to access the
website, the tester must check for internet
threats.
End-to-end Transaction
Testing
End-to-end transactions follow the
workflow to the customer from beginning of
the visit until the customer leaves the site.
Database Testing
Database testing is an essential part of the
web testing.
Key issues include:
Data integrity (no data corruption)
Data validity (accurate information provided to the
customer and accurate information passed back
to the database)
Data manipulation and updates (updating the
number of books sold, books available, ...)
Post-Implementation Testing
Post-implementation testing verifies the
behavior of the application in the production
environment.
It is not feasible to duplicate the test
environment to match the production
environment.
Post-implementation testing takes place in a
“production maintenance window”.
Key Points
Testing web applications present new challenges.
Functional and usability tests focus on the site’s
intended behavior:
Functional testing asserts whether the main features
function correctly.
Usability testing evaluates whether a site is user friendly
by observing users as they interact with the site.
Testing a form ensures that each field works properly.
Navigation testing ensures that the user can accomplish
the desired tasks by verifying access to pages, images,
links, and other page components.
Testing page content ensures that the information
provided by the website is correct.
Key Points
Configuration and compatibility testing make
sure that the application functions correctly
across the various hardware and software
environments.
Reliability and availability testing assesses
whether the website is accessible whenever the
users request it by testing around anticipated
peak usage such as marketing promotions and
high-activity cycles.
Key Points (Cont.)
Performance testing ensures that the website
server responds to browser requests within defined
parameters. As part of performance testing:
Scalability testing assesses the website's ability to meet
the load requirements.
Load testing evaluates how the system functions when
processing many simultaneous requests from a multitude
of users.
Stress testing subjects the system to varying loads.
Security testing aims to check for internet threats or
protect sensitive information.
Key Points (Cont.)
End-to-end transaction testing tests all parts
that make up a particular transaction by
following a customer's workflow from entering
to leaving the site.
Database testing verifies the integrity, validity
and manipulation and updates of the data.
Post-implementation testing verifies an
application's behavior in the production
environment.