The TelQA Testing Series
This article is part of a series of documents which cover the basics of performance testing. See www.telqa.com for other articles in this series and additional downloadable testing resources.
In the previous article we discussed performance testing aims. Now we will consider what types of performance test can be used to achieve these aims.
Typically, performance testing is split into two main categories:
- Load testing – applying a realistic load to the application while monitoring a range of performance criteria
- Stress testing – applying an abnormally high load to the application in order to test the application to its breaking point
Within these subcategories there are a number of different forms of performance tests which are determined by the test duration, the load application strategy and how the load is removed.
Load testing involves applying a realistic load to a web application such that the behaviour of the application can be monitored under both normal and expected peak load conditions. In other words, load testing is designed to simulate the anticipated production load. The duration for which the load is applied must also be representative of the expected load.
Where loads are applied over a prolonged period of time, the load test is often additionally classified as an endurance test. Endurance testing is typically used to test for accumulative effects which cause performance degradation. This degradation could result in reduced throughput levels or increased response times. Typically the test would involve the monitoring of a range of performance parameters which would be used to determine the cause of any performance related problems.
Stress testing involves applying an abnormally high load to a web application. This type of testing can be used to determine the behaviour of the application during extreme load situations as the application is usually loaded to breaking point. These tests are often designed to determine the conditions required for an application to fail, the nature of the failure, and any early warning signs that can be monitored to warn of an impending failure.
Types of Load Application
So far in this article we have considered the two types of performance tests commonly carried out during both development phase testing and system phase testing. In each case we have talked about load application, but we have not yet covered how the load is applied. Since the objective of the test is to predict the behaviour of the application during production, loads must be applied in a way that is representative of the anticipated production load. This means that large test loads cannot simply be instantaneously added and removed, as this is not reflective of a real-life scenario. In this section of the article we will talk about some of the different ways load can be applied to an application.
Ramp Up/Ramp Down
Ramping up a performance test load (virtual users – VUs) typically involves gradually increasing the number of VUs to the point at which the application is running at a specified capacity. In practice, the virtual users are added in steps over a period of time. Ramping down virtual users means gradually removing the load on the application in steps over time.
The step size and the time between steps should be determined by the anticipated production load. The following charts show a number of different approaches which may be used to simulate real-life production loads.
Spike testing involves subjecting the application under test to load volumes that repeatedly increase beyond anticipated production loads for short periods of time i.e. spiking virtual user activity suddenly.
The TelQA Testing Series
Part 1: The Performance Testing Process
Part 2: Performance Testing Aims
Part 3: Types of Performance Testing
Part 4: Performance Test Environments
Part 5: Performance Test Inputs and Outputs
Part 6: Capturing User Interactions
Part 7: Modelling Scripts
Part 8: Selecting Performance Monitors
Part 9: Performance Test Creation
Part 10: Configuring Performance Test Environments
Part 11: Verifying Performance Test Environments
Part 12: Running a Performance Test
Part 13: Analysing Performance Data
Part 14: Using Performance Data for Tuning and Bottleneck Removal
A downloadable pdf of this article is available here.