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