Most frequent interview question for a QA Professionals: What is Performance Testing / Load Testing / Stress Testing / Capacity Testing? Most of the time we use these terms interchangeably, but, in fact, there is the difference in their meanings. This post is a quick review of these concepts….
What is Load Testing?
Load testing is used to study the behavior of Application under Test (AUT) with normal and peak load conditions. This allows you to verify that your AUT can meet your required performance objectives. These performance objectives are often specified in a service level agreement. It enables you to measure response times, resource utilization levels, throughput rates and to identify your application’s breaking point, assuming that breaking point occurs below the peak load condition.
What Stress Testing?
Use stress testing to evaluate your application’s behavior when it is pushed beyond the normal or peak load conditions. The goal of stress testing is to unearth application bugs that surface only under high load conditions. These can include such things as synchronization issues, race conditions, and memory leaks. Stress testing enables you to identify your application’s weak points, and how it behaves under extreme load conditions.
What is Capacity Testing?
Capacity testing is complementary to load testing and it determines your server’s ultimate failure point, whereas load testing monitors results at various levels of load and traffic patterns. You perform capacity testing in conjunction with capacity planning. You use capacity planning to plan for future growth, such as an increased user base or increased volume of data. For example, to accommodate future loads you need to know how many additional resources (such as CPU, RAM, disk space, or network bandwidth) are necessary to support future usage levels. Capacity testing helps you identify a scaling strategy to determine whether you should scale up or scale out.