Explain the term Stress Testing and Load testing?
Load testing is testing that how systems handle heavy load volumes. Jmeter is the most popular load testing tool. Load testing is something you should do all the time, to ensure your system is always on point.
Stress testing is testing that checks the upper limits of your system by testing it under extreme loads.
A load test is a test to perform a specified number of requests to a system in order to test the functionality of the system under specific levels of simultaneous requests. A load test ensures that a web system is capable of handling an expected volume of traffic.It checks how the application behaves during normal and high loads. This type of testing is applied when a development project nears to its completion. The goal of a load test is to prove that a system can handle the expected volume with minimal to acceptable performance degradation.
A stress test is a test designed to increase the number of simultaneous requests on a system past a point where performance is degraded, possibly even to the point of complete failure.It is a type of test that determines the stability and robustness of the system. It is a non-functional testing technique. This testing technique uses auto-generated simulation model that checks all the hypothetical scenarios.
Stress Testing is a Non functional testing technique that is performed as a part of performance testing.During this testing the system is monitored after subjecting the system to overload to ensure that the system can sustain the stress.The recovery of the system from such phase is very critical as it is highly likely to happen in production environment.This testing evaluates the behaviour of the application beyond peak load and normal conditions.
Reasons for conducting Stress testing:
1.It allows the test team to monitor the system performance during failures.
2.To verify if the system has saved the data before crashing or not.
3.To verify if the system prints meaning error messages while crashing or did it print some random exceptions.
4.To verify if unexpected failures do not cause security issues.
Stress testing goal:The goal of this testing is to analyze post- crash reports to define the behaviour of the application after failure.The biggest challenge is to ensure that the system doesn't compromise the security of sensitive data after the failure.In a successful stress testing,the system will come back to normality along with all its components even after the most terrible breakdown.
Load Testing is performance testing using which the response of the system is measured under various load conditions.The load testing is performed for normal and peak load conditions.The sole purpose of this testing is to assign the system the largest job it can possibly handle to test the endurance of the system and monitor the results.An interesting fact here is that sometimes the system is fed with empty task to determine the behaviour of the system in the zero load situation.
Load Testing approach:
1. Evaluate performance acceptance criteria.
2.Identify critical scenarios.
3.Design workload model
4.Identify the target load levels.
5.Design the tests.
7. Analyze the results.