Performance testing is type of testing performed to evaluate the different performance attributes of the application like - responsiveness, stability, reliability etc. For determining these attributes, we have different types of performance testing techniques.
Load testing is a type of testing which involves evaluating the performance of the system under expected workload. A typical load test includes determining the response time, throughput, error rate etc during the course of the load test.
Example - For a newely developed application with aniticipated load of around 1000 concurrent user. We will create a load test script and configure it with 1000 virtual users and run it for say 1 hour duration. After the load test completion, we can analyze the test result to determine how the application will behave at the expected peak load.
Stress testing is a type of performance testing where we evaluate application's performance at load much higher than the expected load. Another aspect of the stress testing is to determine the breakpoint of the application, the point at which the application fails to respond in correct manner.
Example - For an application with anticipated load of 1000 users we will run the test with for 1200 users and check if the application is robust enough to not crash.
Endurance testing is also known as 'Soak Testing'. It is done to determine if the system can sustain the continuous expected load for long durations. Issues like memory leakage are found with endurance testing.
Example - For an application like Income tax filing, the application is used for continously for very long durations by different user. In these type of applications, the memory management is very critical. For application like these, we can run the test for 24 hours to 2 days duration and monitor the memory utilisation during the whole test execution.
In spike testing, we analyze the behavior of the system on suddenly increasing the number of users. It also involves checking if the application is able to recover after the sudden burst of users.
Example - For an e-commerce application running an advertisement campaign, the number of users can increase suddenly in a very short duration. Spike testing is done to anayze these type of scenarios.
The volume testing is performed by feeding the application with high volume of data. The application can be tested with large amount of data inserted in the database or by providing a large file to the application for processing. Using volume testing, we can identify the bottleneck in the application with high volume of data.
Example - For a newely developed e-commerce application, we can perform volume testing by inserting millions of rows in the database and then carry out the performance test execution.