Types of Performance Testing
Baseline Testing: This test is normally run for a single user for a single transaction for a set period of time to be used as a comparison later. When actual performance tests are run, the response times are compared with the baseline tests’ results to find the performance degradation.
Sometimes when some performance specific changes are made to an application (for e.g. modifying some queries) , tests are run on a build without the changes which are referred to as baseline tests.
Process of exercising the system under test by feeding it the largest tasks it can operate with.
Finds out systems behaviour under various loads. Parameter to focus is Response time.
Application is loaded upto target concurrency but no further. It is the closest approximation of real application use. It generally includes simulation of user interaction like delay and pauses during data entry.
It answers the question : How is your application responding to regular web traffic loads?
Stress Testing: The aim is to find the upper limit or sizing of infrastructure. Stress test continues till something breaks like no more users can log in, response becomes unacceptable or app becomes unavailable. It involves breaking the system by taking the resources away from it and hence the main goal is to identify the breaking point of the server. It tests a system beyond its capacity. Purpose is to ensure that the system fails and recovers gracefully.
Main parameter to focus is throughput.
It causes application or some part of supporting infra to fail. The rationale for stress testing is that if target users is 1000 users and infrastructure fails at 1005, then this is worth knowing because it clearly demonstrates that there is very little extra capacity available.
Its good to know the upper limit of system is the future traffic is not easy to predict.
It answers the question: Will heavy web traffic break your application.
Endurance / Soak: Application is exercised under significant load for prolonged time.
Main parameter to focus is memory.
It answers the question: How does load impact your application over long durations?
Spike Testing: Done by sudden increase/decrease in load and observing the behaviour of the application. Helps to determine whether the application can handle significant changes in load.
Main parameter to focus : response time.
Volume Testing: performed to identify whether the app can handle large number of complex queries under significant load. Main purpose is to observe how the Database act under various circumstances.
Parameter: Response time for queries.
It answers the question: How is you application responding to various volumes of data?