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

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.