Performance Testing

Performance Testing Fundamentals

What is Performance Testing?

The process of testing to determine the performance of software product

Importance of Performance Testing:

Application performance has a major impact on the overall quality and popularity, especially in cases where organizations are dependent on IT for major business activities.

Clients have a clear expectation when it comes to quality and have become more demanding.

Every client looks for a reliable and fast application; performance testing ensures that all applications are performing optimally and are available and speedy.

The need for eliminating bottlenecks has become greater in this competitive business world. Performance testing ensures that bottlenecks are identified and eliminated before the application goes into the production stage.

Breach in service level agreement conditions can be prevented through performance testing of applications.


Types of Performance Testing:

Performance Testing:

It is to determine or validate speed, scalability, and stability of the System

Performance tests are technical investigations to validate the response, speed, scalability, and/or stability characteristics of the product under test.

Load Testing:

It verifies application behavior under normal and peak load conditions.

Load testing is conducted to verify that our application can meet our desired performance objectives; these performance objectives are often specified in a service level agreement (SLA).

Load tests enable us to measure response times, throughput rates, and resource-utilization levels, and to identify our application’s breaking point, assuming that the breaking point occurs below the peak load condition.

Endurance Testing:

It is a subset of Load testing, used to validate a system’s performance under continues load.
 
Endurance testing calculates Mean Time Between Failure (MTBF), Mean Time To Failure (MTTF), and similar metrics.

Stress Testing:

It validates 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:

It is a subset of Stress testing, used to validate a system’s performance under sudden changes (Load increments and decrements)  

Volume Testing:

Testing how the system handles large amount of data

Volume testing is done against the efficiency of the application. Huge amount of data is processed through the application (which is being tested) in order to check the extreme limitations of the system.

Performance Test Tools

Tool Name
Vendor
Description
LoadRunner
HP
Performance test tool used for executing large numbers of tests (or a large number or virtual users) concurrently.
RPT (Rational Performance Tester)
IBM
Used for executing large volume performance tests to measure system response time for server based applications.
JMeter
Apache Jakarta Open source Tool
Java desktop application for load testing
SilkPerformer
Micro Focus
SilkPerformer is an integrated performance testing solution that makes it possible to create powerful, realistic load tests for thousands of users running business scenarios across a broad range of enterprise application environments
OpenSTA
Open Source
Open source web load/stress testing application.
HTTP Test Tool
Open Source
Open source scribable http/icap/ntlm test tool suite which also can do distributed load test.
Visual Studio
Microsoft
Visual Studio Ultimate edition includes a load test tool which enables a developer to execute a variety of tests.
Load Impact

Cloud based large scale performance testing SaaS tool primarily used for executing large volume performance tests.
LoadUI
SmartBear
Open source and cross-platform load testing tool, targeted mainly at web services.
WebLoad
Radview
WebLOAD Professional is RadView's software for performance testing of internet applications.


Advantages of Performance Testing:

* It helps to detect hidden bottlenecks or performance issues

* Helps to predict how the system will function in the real world.

* Measures the end user response time for every transaction and user load level

* Increases customer satisfaction and business volume

* Avoids project failure under large user loads

* It validates the System’s behavior under high volume of data.

* It validates the system’s behavior under peak load.

* It validates how the Application will handle sudden increments and decrements of Load (Load in terms of operations as well as users)   

Disadvantages:

* Performance Tests are just simulation but not realistic

* It can’t estimate real world issues.

* Test Tool is mandatory to conduct performance testing (Manual Testing is impractical for this type of testing)

* It expensive to set-up test environment and accommodate Test Tool for Performance Testing

* Real world issues are dynamic, so handling all types of performance issues is difficult.

0 comments:

Post a Comment