By slowing down the search results by only 4/10th of a second, Google found that it would reduce the number of searches by 8,000,000 per day! By it’s own calculations, 1 second of slower page performance could cost Amazon $1.6 billion in sales each year and for every 100ms of latency, it loses 1% of its sales.

People may not mind waiting in line in a real shop, but on the web, a delay of even 4 seconds makes 1 out of 4 customers abandon the web page. The importance of performance testing for your web application, therefore, cannot be emphasized enough.

In this blog, let us have a look at five different types of performance testing, the parameters to check for each and let us understand which type of testing is useful when.

Performance Testing:

The goal of the Performance testing is to test the application against the set benchmark. The aim is not to find defects but, instead, this testing validates the usage of resources, responsiveness, scalability, stability, and reliability of the application. It is important to note that the Performance Testing should be conducted on the production hardware using the same configuration machines which the end users will be using otherwise, there can be a great degree of uncertainty in the results. Performance testing helps businesses in capacity planning and optimization efforts. Load Testing:

Load testing is carried out to validate the performance of the application under normal as well as peak conditions. It is conducted to verify that the application meets the desired performance objectives. Load testing typically measures response times, resource utilization, and throughput rates and identifies the breaking point of the application. It is important to note that load testing is designed to focus only on the speed of response. It is carried out to detect concurrency issues, bandwidth issues, load balancing problems, functionality errors which could occur under load, and helps in determining the adequacy of the hardware. Results of Load testing help businesses determine the optimal load the application can handle before the performance is compromised. Stress Testing:

Stress testing validates the behavior of the application under peak load conditions. The goal of this testing to identify the bugs such as memory leaks or synchronization issues, which appear only under peak load conditions. Stress testing helps you find and resolve the bottlenecks. The results of stress tests highlight the components which fail first and these results can then help the developers in making those components more robust and efficient. Capacity Testing:

Capacity testing is carried out to define the maximum number of users or transactions the application can handle while meeting the desired performance goals. The future growth in terms of users or data volume can be better planned by doing the capacity testing along with capacity planning. Capacity testing is extremely helpful for defining the scaling strategy. The results from capacity testing help capacity planners in validating and enhancing their models. Soak Testing/Endurance Testing:

Soak testing is used to test the application performance and stability over time. It tests the application performance after enduring expressive load over an extended period of time. It is useful for discovering the behavior of the application under repeated use. These tests help in tracking down memory leaks or corruption issues.

Conclusion

Some of the basic parameters monitored during performance testing include processor usage, bandwidth, memory usage, response time, garbage collection, database locks, hit ratios, throughput, maximum active sessions, disk queue length, etc. One run of performance test can take anywhere between 1 day to 1 week, depending on the complexity and size of the application being tested. Apart from this, other aspects such as workload analysis, script designing, test environment setup etc. also need to be worked on.

We hope this blog was useful for you. How do you use performance testing in your testing plan? Do share your ideas and experiences in the comments section below.