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:
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.
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.
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.
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.
It is a subset of Stress testing, used to validate a system’s performance under sudden changes (Load increments and decrements)
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
|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: