3
Key Types of Performance Testing The following are the most common types of performance testing for Web applications. Term Purpose Notes Performance test To determine or validate speed, scalability, and/or stability.  A performance test is a technical investigation done to determine or validate the responsiveness, speed, scalability, and/or stability characteristics of the product under test. Load test To verify application behavior under normal and peak load conditions.  Load testing is conducted to verify that your application can meet your desired performance objectives; these performance objectives are often specified in a service level agreement (SLA). A load test enables you to measure response times, throughput rates, a nd resource-utilization levels, and to identify your application’s breaking point, assuming that the breaking point occurs below the peak load condition.  Endurance testing is a subset of load testing. An endurance test is a type of performance test focused on determining or validating the performance characteristics of the product under test when subjected to workload models and load volumes anticipated during production operations over an extended period of time.  Endurance testing may be used to calculate Mean Time Between Failure (MTBF), Mean Time To Failure (MTTF), and similar metrics. Stress test To determine or validate an application’s behavior when it is pushed beyond normal or peak load conditions.  The goal of stress testing is to reveal application bugs that surface only under high load conditions. These bugs can include such things as synchronization issues, race conditions, and memory leaks. Stress testing enables you to identify your application’s weak points, and shows how the application behaves under extreme load conditions.  Spike testing is a subset of stress testing. A spike test is a type of performance test focused on determining or validating the performance characteristics of the product under test when subjected to workload models and load volumes that repeatedly increase beyond anticipated production operations for short periods of time. Capacity test To determine how many users and/or transactions a given system will support and still meet performance goals.  Capacity testing is conducted in conjunction with capacity planning, which you use to plan for future growth, such as an increased user base or increased volume of data. For example, to accommodate future loads, you need to know how many additional resources (such as processor capacity, memory usage, disk capacity, or network bandwidth) are necessary to support future usage levels.  Capacity testing helps you to identify a scaling strategy in order to determine whether you should scale up or scale out.

Key Types of Performance Testing

Embed Size (px)

Citation preview

7/28/2019 Key Types of Performance Testing

http://slidepdf.com/reader/full/key-types-of-performance-testing 1/3

Key Types of Performance TestingThe following are the most common types of performance testing for Web applications.

Term  Purpose  Notes 

Performance

test 

To determine or validate speed,

scalability, and/or stability.

  A performance test is a technical investigation done to determine or validate the responsiveness,

speed, scalability, and/or stability characteristics of the product under test.

Load test To verify application behavior

under normal and peak load

conditions.

  Load testing is conducted to verify that your application can meet your desired performance

objectives; these performance objectives are often specified in a service level agreement (SLA).

A load test enables you to measure response times, throughput rates, and resource-utilization

levels, and to identify your application’s breaking point, assuming that the breaking point

occurs below the peak load condition.

 Endurance testing is a subset of load testing. An endurance test is a type of performance testfocused on determining or validating the performance characteristics of the product under test

when subjected to workload models and load volumes anticipated during production

operations over an extended period of time.

  Endurance testing may be used to calculate Mean Time Between Failure (MTBF), Mean Time To

Failure (MTTF), and similar metrics.

Stress test To determine or validate an

application’s behavior when it is

pushed beyond normal or peak

load conditions.

  The goal of stress testing is to reveal application bugs that surface only under high load

conditions. These bugs can include such things as synchronization issues, race conditions, and

memory leaks. Stress testing enables you to identify your application’s weak points, and shows

how the application behaves under extreme load conditions.  Spike testing is a subset of stress testing. A spike test is a type of performance test focused on

determining or validating the performance characteristics of the product under test when

subjected to workload models and load volumes that repeatedly increase beyond anticipated

production operations for short periods of time.

Capacity test To determine how many users

and/or transactions a given

system will support and still meet

performance goals.

  Capacity testing is conducted in conjunction with capacity planning, which you use to plan for

future growth, such as an increased user base or increased volume of data. For example, to

accommodate future loads, you need to know how many additional resources (such as

processor capacity, memory usage, disk capacity, or network bandwidth) are necessary to

support future usage levels.

  Capacity testing helps you to identify a scaling strategy in order to determine whether you

should scale up or scale out.

7/28/2019 Key Types of Performance Testing

http://slidepdf.com/reader/full/key-types-of-performance-testing 2/3

The most common performance concerns related to Web applications are “Will it be fast enough?”, “Will it support all of my clients?”, “What happens if something

goes wrong?”, and “What do I need to plan for when I get more customers?”. In casual conversation, most people associate “fast enough” with performance

testing, “accommodate the current/expected user base” with load testing, “something going wrong” with stress testing, and “planning for future growth” with

capacity testing. Collectively, these risks form the basis for the four key types of performance tests for Web applications.

Summary Matrix of Benefits by Key Performance Test TypesTerm  Benefits  Challenges and Areas Not Addressed 

Performance

test 

  Determines the speed, scalability and stability

characteristics of an application, thereby providing an

input to making sound business decisions.

  Focuses on determining if the user of the system will be

satisfied with the performance characteristics of the

application.

  Identifies mismatches between performance-related

expectations and reality.

  Supports tuning, capacity planning, and optimization

efforts.

  May not detect some functional defects that only appear under

load.

  If not carefully designed and validated, may only be indicative

of performance characteristics in a very small number of 

production scenarios.

  Unless tests are conducted on the production hardware, from

the same machines the users will be using, there will always

be a degree of uncertainty in the results.

Load test    Determines the throughput required to support the

anticipated peak production load.

  Determines the adequacy of a hardware environment.

  Evaluates the adequacy of a load balancer.

  Detects concurrency issues.

 Detects functionality errors under load.

  Collects data for scalability and capacity-planning

purposes.

  Helps to determine how many users the application can

handle before performance is compromised.

  Helps to determine how much load the hardware can

handle before resource utilization limits are exceeded.

  Is not designed to primarily focus on speed of response.

  Results should only be used for comparison with other related

load tests.

Stress test    Determines if data can be corrupted by overstressing the

system.

 Provides an estimate of how far beyond the target load anapplication can go before causing failures and errors in

addition to slowness.

  Allows you to establish application-monitoring triggers to

  Because stress tests are unrealistic by design, some

stakeholders may dismiss test results.

 It is often difficult to know how much stress is worth applying.

  It is possible to cause application and/or network failures that

may result in significant disruption if not isolated to the test

7/28/2019 Key Types of Performance Testing

http://slidepdf.com/reader/full/key-types-of-performance-testing 3/3

warn of impending failures.

  Ensures that security vulnerabilities are not opened up by

stressful conditions.

  Determines the side effects of common hardware or

supporting application failures.  Helps to determine what kinds of failures are most valuable

to plan for.

environment.

Capacity test    Provides information about how workload can be handled

to meet business requirements.

  Provides actual data that capacity planners can use to

validate or enhance their models and/or predictions.

  Enables you to conduct various tests to compare capacity-

planning models and/or predictions.

 Determines the current usage and capacity of the existing

system to aid in capacity planning.

  Provides the usage and capacity trends of the existing

system to aid in capacity planning

  Capacity model validation tests are complex to create.

  Not all aspects of a capacity-planning model can be validated

through testing at a time when those aspects would provide

the most value.