You are on page 1of 32

Performance

Testing
An Introduction
Performance
Performance is one of the most important
aspects concerned with the quality of
software.

It indicates how well a software system or


component meets its requirements for
timeliness.

There are two important dimensions to
software performance timeliness,
responsiveness and scalability.
Performance Profiles
One of the key activities in performance testing
is to decide what type of load or loads to
place on the system/application

There are many variations of performance


testing that we can select from so we first
have to determine what is needed

Types of Performance
Testing
The three most common types of software
performance testing include:

Testing which is driven by what we want to


measure
Testing which is based on the source or type of
the load
Testing to stress the system or find its limits

Types of Performance
Testing
Testing which is driven by what we want to
measure

Response time testing


Throughput testing
Availability testing
Measurement of resource utilization
Capacity testing
Error rate measurement

Types of Performance
Testing
Testing which is based on the source or type of
the load

Usage-based testing
Standard benchmark testing
Load variation/bounce testing
Ramp-up testing
Component-specific testing
Calibration testing

Understanding Load
Once we have an idea of what we want to
accomplish
The general type of testing we want
What tests we want to run

Now we have to decide on the volume of


activity and the composition of that volume,
load (i.e. workload)

Load Behavior
Load Behavior
Load Profile
To better simulate the real world, not only
should the load size be estimated, but also a
profile of the users/activities that make up the
load needs to be created


Test Sample Sizes
Most factors which we want to measure, such as
response time, vary based on many factors; both
known and unknown

 This means we cannot measure something once but
must sample it several times in order to compute a
meaningful average
 How big does the sample need to be? This is a rough
rule of thumb for the relationship between sample
size and accuracy

 Sample Accuracy
 Size (roughly)
 30 50%
 100 25%
 200 10%
 1,000 3%
Number and Types of
Users
The mix of users(events) may vary by time
period
Special events can alter the mix

Browsers

Buyers
Think Times
The time it takes a client (or virtual client) to
respond to an application may have a
significant impact on the number of clients an
application can support
This is a key aspect of concurrency

Background Load (Noise)
What additional activities need to be
considered to accurately reflect the
performance degradation caused by network
and other application loads, “background
noise”

Performance Problem
Areas
End User Desktop Problems
Internet Bottlenecks
ISP Performance and Peering
Network Vs Server Issues
Load Balancer Problems
Faulty Web Server within a Cluster
Firewall Performance
Application Server Issues
Server HW, Device, OS, DB Issues
Content Issues
Reason of Bottlenecks
People

Reactive than proactive, Not Thinking About


“Load” or “Scalability” or
Limited Expertise in System Design /
Development
Reason of Bottlenecks
Process

Poor Architecture and System Design


Changing requirements
Changing project plans
Reason of Bottlenecks
Technology

Inadequate Hardware
Inadequate Network Capacity
Poor Implementation / Tuning of Databases and
components
Performance Problem
Contributors
Application Server Issues Network Issues
Threading Issues Packet Loss
Memory Leaks Excessive Network Uses
High Verbose Log File Hardware Related Issues
Connection Pool High Latency
Management
Database Server Issues Web Server Issues
Slow Query Response Ineffective Caching
Query & Stored Procedure Connection Poll Management
Cache
Deadlocks Keep-Alive Connections
Temp DB Issues Flushed
Content Compression
Configuration
Performance Problem
Contributors
Find & Fix Problems
Performance engineering is the process by
which software is reviewed, tested and
tuned with the intent of realizing the
required performance. This process aims
to optimize the most important
application performance trait, user
experience
Using Framework
Find & Fix Problems
Using Right Methodology
Using Right Instrumentation for
 Performance Testing
 Performance Monitoring
 Performance Profiling
 Performance Tuning
Using Appropriate Testing Type
Appropriate Testing Type
Network Testing
Baseline Testing
Spike Testing
Endurance Testing
Volume Testing
Stress Testing
Load Testing
Performance Tuning
It is a process of identifying and eliminating
bottlenecks
Performance tuning of Web-based systems is a
multivariable and iterative process
It is a collaborative effort between cross
functional teams
Performance tester is an enabler since he
provides the necessary information in an
efficient manner
Performance Tuning

Design & Arch.


Applica-tion
DBMS
Performance HW
OS
Tuning
Performance Tuning
Process
Define Benchmark
Establish Baseline
Collect Data
Analyze Results
Identify Bottleneck
Configure and Tune
Application / components
Test and Measure
Keep Monitoring
Performance Testing
Tools
HP Load Runner & Performance Center
IBM Rational Performance Tester
Borland Silk Performer
Radview Webload
Apache JMeter
Open STA
Performance Testing
Tools
Generally tools have following components:

 Controller – Responsible for script creation and


execution.
 Load Generators – Generates different types of
load on target server.
 Result Analyzer – Used to analyze results.
General Scenario
Summary
A successful software performance test plan
starts with knowing what it is you want to
accomplish

What types of tests do you want?
What loads and mixes are needed for these
tests
Performance not be taken as a final step in
SDLC
Know your system well
 Collect history data
 Read logs
 Stress test/ soak test application at Peak load
Summary
End-user experience is not all
Checking further into the system for critical
performance bottlenecks may avoid serious
problems.

You might also like