QA Labs brings you practical tips and tools on testing, quality assurance (QA), and related topics through this monthly e-newsletter.
Performance Testing and the Wide World Web
Today's client/server systems are expected
to perform reliably under loads ranging from hundreds to
thousands of simultaneous users. The fast growing number
of mission critical applications (e-commerce, e-business,
contents management, etc.) accessible through the Internet
makes web site performance an important feature for success
in the market.
According to a broad statement in the
white paper Web Performance Testing and Measurement:
a complete approach, by G. Cassone, G. Elia, D. Gotta,
F. Mola, A. Pinnola: "...a survey [in the US] has found
that a user typically waits just 8 seconds for a page to
download completely before leaving the site!"
Organizations need to perform repeatable
load testing to determine the ultimate performance and potential
limits of a system on an on-going basis. Poor performance
can have direct negative consequences on the ability of
a company to attract and retain its customers. Controlling
performance of web site and back-end systems (where e-business
transactions run) is a key factor for every on-line business.
"Performance Testing" is the name given
to a number of non-functional tests carried out against
an application. There are three main elements that often
comprise what is called Performance Testing. These are:
- Performance Testing - Concentrates on testing and measuring
the efficiency of the system.
- Load Testing - Simulates business use with multiple
users in typical business scenarios, looking for weaknesses
of design with respect to performance.
- Stress Testing - Sets out to push the system to its
limits so that potential problems can be detected before
the system goes live.
A difference between performance and load
testing is that performance testing generally provides benchmarking
data for marketing purposes, whereas load testing provides
data for the developers and system engineers to fine-tune
the system and determine its scalability.
With load testing, you can simulate the
load generated by hundreds or thousands of users on your
application - without requiring the involvement of the end
users or their equipment. You can easily repeat load tests
with varied system configurations to determine the settings
for optimum performance. Load testing is also particularly
useful to identify areas of performance bottlenecks in high
traffic web sites.
Top five questions to ask yourself when
considering load testing:
- Do you experience problems with performance in production?
- What is the cost of downtime, including monetary, person
hours, opportunity cost, customer satisfaction, and reputation?
- Does your application scale with an increase of users?
- Do you have a method for obtaining real performance
metrics?
- How do you repeat/reproduce a performance problem?
Defining exactly what you want to get
from this type of testing is fundamental. In a comprehensive
approach, there are some major questions that have to be
considered:
- Who are your end users?
- How can you monitor their experience with the system?
- How can you translate these measurements into solutions?
- What tools and methods can help?
With the answers to the above questions
you get started with:
- Strategy and Planning
- Define your specific performance objective.
- Specify the types of users to generate the necessary
load.
- Define the scenarios that simulate the work and
data flow.
- Define how the scenarios will be measured and tested.
- Define the repository for storing the data to be
collected.
- Plan your test environment.
- Identify appropriate tools.
- Development
- Develop/customize test scripts which simulate your
user's behaviour.
- Configure your test environment.
- Execution
- Execute your test scripts to simulate user load.
- Monitor the system resources.
- Result Analysis
- Analyze and interpret the results.
- Isolate and address issues.
- Tune your implementation.
- Plan for future marketing requests.
QA Labs can help you assess what you need,
provide you information on the tools available, and work
with your staff to develop a strategy in accordance with
your specific needs. We can develop test scripts to simulate
the user behaviour defined in the test plan, test them,
document them for use in subsequent performance and load
test cycles, and transfer them to your staff.
Contact us at services@qalabs.com or visit
our website
for more information on our QA and Testing services.
QA Labs is a powerful player on your team supplying the critical competitive advantage you need today. Our mission is to help you make your software products succeed in the marketplace, whatever the climate. We work with you to make wise choices that reflect project constraints, industry trends, and business considerations. We are the largest independent software quality assurance and testing service provider in Canada. For more information, please visit www.qalabs.com.