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  .

load (i. workload)  .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.e.

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   .

000 3% . vary based on many factors.Test Sample Sizes Most factors which we want to measure. 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. such as response time.

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. OS. Device. 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 .

tested and tuned with the intent of realizing the required performance.Find & Fix Problems Performance engineering is the process by which software is reviewed. 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. .