Demystifying the Six Major Types of Performance Testing
Has your organization experienced a failure that could have been avoided with performance testing? Most organizations have. Stable websites may crash under the peak load of a holiday sale. Transaction processing may fail due to issues in data transfer rates, network bandwidth or throughput.
Performance testing is critical as it provides valuable information on the scalability, stability and reliability of your application. Yet, planning an effective performance test strategy is complex because performance testing covers many specialized test types that must be applied in specific ways. Here is a review of the major performance test types and how they are applied to create an effective performance test.
This test pushes an application beyond normal load conditions to determine which components fail first. Stress testing attempts to find the breaking point of the application and is used to evaluate the robustness of the application’s data processing capabilities and response to high volumes of traffic.
This testing evaluates the ability of the application to handle sudden volume increases. It is done by suddenly increasing the load generated by a very large number of users. The goal is to determine whether performance will suffer, the system will fail, or it will be able to handle dramatic changes in load. This testing is critical for applications that experience large increases in number of users; for example, utility customers reporting power outages during storms. This can be considered a component of stress testing
The purpose of load testing is to evaluate the application’s performance under increasingly high numbers of users. Load, or increasing numbers of users are applied to the application under test and the results are measured to validate the requirements are met. This load can be the expected concurrent number of users on the application performing a specific number of transactions within the set duration. This test will give out the response times of all the important business critical transactions. If the database, application server, etc. are also monitored, then this simple test can itself point towards bottlenecks in the application software.
Endurance testing evaluates the performance of the system under load over time. It is executed by applying varying loads to the application under test for an extended period of time to validate that the performance requirements related to production loads and durations of those loads are met. Endurance testing can be considered a component of load testing and is also known as soak testing.
Also known as flood testing, this testing is used to evaluate the application’s ability to handle large volumes of data. The impact on response time and the behavior of the application are analyzed. This testing can be used to identify bottlenecks and to determine the capacity of the system. This type of performance testing is important for applications that deal with big data.
This testing is used to determine your application’s ability to handle increasing amounts of load and processing. It involves measuring attributes including response time, throughput, hits and requests per second, transaction processing speed, CPU usage, Network usage and more. Results of this testing can be used in the planning and design phases of development which reduces costs and mitigates the potential for performance issues.
Performance testing is critical to ensuring the stability, scalability and reliability of your applications that your customers expect. Developing a comprehensive performance test strategy involves selecting and executing the types of performance testing that are most relevant to your applications. Performance testing is not “one size fits all”, it is a complex and multi-faceted test discipline; however, with an understanding of the major types of performance testing, you can develop a effective performance test approach.