Performance Testing

Usually performance testing is thought of as just running a series of tests. However, it is much more than this and it requires a clear methodology that guarantees that the results are consistently accurate and reliable. Our methodology, published in various books on the subject, is simple and flexible, yet extremely powerful. It is based on the following steps:
• Define the performance criteria
• Define the test metrics
• Define the test conditions, including the monitoring tools
• Realistically simulate the application usage
• Execute the tests

The actual tests can be grouped into the following categories:

Load tests, which are used to understand the behavior of the application under the normal load conditions expected in the production environment. The defined metrics and monitoring tools will present a clear picture of the execution of the application, including any issues that might occur.
These tests are also used to verify that the application service level agreement (SLA) will be met when placed in the production environment. An additional use for the load tests is the verification that the fault and recovery processes are working correctly.

Stress tests, which are used to better understand what happens when the application exceeds the normal load conditions. The main objective is to understand how much will the defined performance metrics degrade as the load conditions increase. The information gained during these tests provide excellent input for capacity planning

Endurance tests, which explore the behavior of the application over longer time periods. These tests usually focus on the consumption of resources and tend to uncover memory leaks and database issues

Architectural tests, which are specific to the performance engineering functions. The biggest difference with the previous tests is that they usually do not simulate the typical usage of the application and the test conditions are are extremely stressful.