Performance Testing Basics

Performance Testing Basics

Performance testing is the process of determining the speed or effectiveness of a computer, network, software program or device, which is not to find bugs, but to eliminate performance bottlenecks. Performance testing generally involves an automated test suite as this allows easy simulation of a variety of normal, peak, and exceptional load conditions.

The focus of Performance testing is checking a software program’s speed, which is to determine whether the application responds quickly, scalability, which is to determine maximum user load the software application can handle, and stability, which is to determine if the application is stable under varying loads.


Why to Load Test an Application?

It prevents costly failures of mission-critical applications, assures performance and functionality under real world conditions, locates potential problems before your customers do, reduces development time, and reduces infrastructure costs.

Types of Performance Testing

The term “Performance Test” is a generic term used to describe a category or suite of tests. Performance tests can be of many types including:

Load testing:

Load testing is performance testing which is focused on determining or validating performance characteristics of the product under test when subjected to workload models and load volumes anticipated during production operations.

Stress testing:

Stress testing involves testing an application under extreme workloads to see how it handles high traffic or data processing .The objective is to identify breaking point of an application.

Endurance testing:

Endurance testing is usually done to determine if the system can sustain the continuous expected load.

Spike testing:

Tests the software’s reaction to sudden large spikes in the load generated by users.

Volume testing:

Volume testing involves checking stability of system under extended periods of load. Under Volume Testing large number of data is populated in database and the overall software system’s behavior is monitored. The objective is to check software application’s performance under varying database volumes.

Scalability testing:

The objective of scalability testing is to determine the software application’s effectiveness in “scaling up” to support an increase in user load. It helps plan capacity addition to your software system.


Advantages of Performance Testing:

•    Eliminate system failures requiring scrapping and writing off the system development effort due to performance objective failure.
•    Reduced cost of change.
•    Eliminate late system deployment due to performance issues.
•    Eliminate avoidable system rework due to performance issues.
•    Eliminate avoidable system tuning efforts.
•    Reduce additional operational overhead for handling system issues due to performance problems.

Disadvantages of Performance Testing:

•    Performance test are just stimulation, but not realistic.
•    It can not estimate real world issues.
•    It is expensive to set up environment.


Performance Test Tools

There are a wide variety of performance testing tools available in market. The tool you choose for testing will depend on many factors such as types of protocol supported , license cost , hardware requirements , platform support etc.

Below are list of popularly used performance testing tools:

HP Loadrunner is the most popular performance testing tools on the market and is capable of simulating hundreds of thousands of users, putting applications under real life loads to determine their behavior under expected loads.
 

SilkPerformer:
It is the enterprise-class solution for software-application performance, load, and stress testing. SilkPerformer is used to assess the performance of Internet servers, database servers, distributed applications, and middleware, both before and after they are fully developed. SilkPerformer helps you to quickly and cost-effectively produce reliable, high-quality application solutions.

IBM Rational Performance Tester (RPT):
It is a performance testing tool that identifies the presence and cause of system performance bottlenecks. Combining multiple ease-of-use features with granular detail, Rational Performance Tester simplifies the test-creation, load-generation and data-collection processes that help teams ensure the ability of their applications to accommodate required user loads.

JMeter:
The Apache JMeter desktop application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions. 


HTTP Load - a throughput testing tool aimed at testing web servers by running several http or https fetches simultaneously to determine how a server handles the workload.

Proxy Sniffer – one of the leading tools used for load testing of web and application servers.

0 comments:

Post a Comment