It is performed to evaluate the performance of components of a particular system in a specific situation. This type of testing generally does not give pass or fail. It is basically done to set the benchmark & standard of the application against Concurrency / Throughput, Server response time, Latency, Render response time etc. In other words, you can say it is technical & formal evaluation for responsiveness, speed, scalability and stability characteristics.
Once the software has met its performance requirements, load testing begins. Software performance balancing has been done, so the objective of load testing is more about endurance and volume. It attempts to simulate the real-world conditions it will be subjected to after deployment. Usually, this is done with automated tools to achieve a realistic deployment scale.
Examples of volume testing include simulating thousands of users accessing the application or the addition of tens of thousands of new user accounts in a brief time period. Endurance testing, also known as soak testing, is the application of load testing continuously over a long period of time as might occur, for example, on a bank’s online service during semi-monthly paydays.
Load testing reveals software defects that might not occur during the shorter intervals of performance tests. Such defects include memory leaks, buffer overflows, failure to close network or inter-module connections and gradual degradation in response time.
Stress testing – It is done to evaluate the application’s behaviour beyond normal or peak load conditions. It is basically testing the functionality of the application under high loads. Normally these are related to synchronization issues, memory leaks or race conditions etc. Some testing experts also call it as fatigue testing. Sometimes, it becomes difficult to set up a controlled environment before running the test. Example of Stress testing is:
A banking application can take a maximum user load of 20000 concurrent users. Increase the load to 21000 and do some transaction like deposit or withdraw. As soon as you did the transaction, banking application server database will sync with ATM database server. Now check with the user load of 21000 does this sync happened successfully. Now repeat the same test with 22000 thousand concurrent users and so on.
Spike test is also a part of stress testing which is performed when application is loaded with heavy loads repeatedly and increase beyond production operations for short duration.
Stress Testing helps to determine:
- Errors in slowness & at peak user loads
- Any security loop holes with over loads
- How the hardware reacts with over loads
- Data corruption issues at over loads