Performance testing combines several testing types and aims to determine the stability, resource consumption, and other attributes of an application’s quality under various use cases and workloads. Performance testing allows you to find possible vulnerabilities and flaws in the system to prevent their detrimental effect on the work of the application. System can be tested in a specific environment using:
- Determination of the working number of users of the application.
- Measurement of the execution time of various system operations.
- Determination of the application performance at various degrees of load.
- Determination of acceptable limits of application performance at different load levels.
Depending on the characteristics that we need to test, performance testing is divided into types:
- Load testing is testing the response time of an application to various types of requests to make sure that the application works as required under the usual user load.
- Stress testing is testing the application performance under extreme loads. Stress testing allows to get real data of application performance limits, examine the system’s ability to handle exceptions, its stability, and robustness. The difference between performance testing and stress testing lies in the significantly increased application load.
- Stability/Reliability testing examines the application performance over time under usual load.
- Volume testing is done with an increase in the amount of used data that is stored and used in the application.
Very often, defining performance testing and its types creates confusion. To avoid this, let’s summarize. So, performance testing is testing non-functional requirements such as the performance and operability of an application under various loads and conditions. Depending on the studied characteristics of the program, we can distinguish such types of testing as:
- Load testing (performance under normal conditions).
- Stress testing (operability, performance, and characteristics of the application under extreme loads).
- Stability testing (with long-term operation).
- Volume testing (increased amount of processed data).