In this article we shall discuss about three major testing methodologies namely performance testing, load testing and stress testing and also the differences between them.
1. Performance Testing
– It is carried out to know the statistics of a software system’s or application’s performance in terms like stability and responsiveness under a number of conditions of the work load.
– It also serves the following purposes:
a) Investigation of the attributes of the system
b) Measurement of the attributes
c) Validation and verification of the quality attributes
– This testing type struggles in building a better performance of the system in terms of its implementation, architecture and design.
– This testing demonstrates whether or not the performance criteria is being met by the software system.
– Which one among the two systems in comparison is giving better performance?
– Find out which part of the software system is having a bad impact on its performance?
– A number of performance tests can be carried out without considering the actual performance goals of the system.
– Before carrying out a performance test, it should be considered why the test is being performed.
– This should be done being a part of the business case of the whole testing process.
2. Load Testing
– This testing type is one of the simplest types of the performance testing methodologies and is carried out to determine how the software system performs or behaves under a specified load.
– The load can be in the form of a certain number of concurrent number of end users working on the software system carrying out a specified number of transactions within a predefined time limit.
– With this test one can obtain the response times corresponding to all the transactions that are critical transactions.
– Load testing can even pick out any bottlenecks present in the software system provided the application server as well the data base servers are also monitored.
– The process involves putting demands on the application and measuring its response time.
– The system’s behavior is also monitored in addition to measuring the response time under both normal and expected extreme load conditions.
– This helps in the identification of the maximum operational capacity of the software system.
– The element that causes the performance degradation is also identified.
– If the present load up on the system is increased up on a certain usage pattern, it is then termed as the load testing.
3. Stress Testing
– This testing methodology is for determining the upper limits of the working capacity of the software system or application.
– This is carried out in order to determine the robustness of the system in terms of the load supplied.
– This in turns assists the application developers in determining whether the system is performing well enough under the current load and whether or not the system will perform in the same way if the load is increased beyond the maximum expected limit.
– The stress testing stresses the following three major factors that heavily affect the system’s performance:
a) Robustness of the system
b) Availability of the resources
c) Error handling capacity
– The above mentioned three factors are determined under heavy load conditions rather than determining them under so called normal load conditions.
– The stress testing is driven by the idea of ensuring that the system does not crash in conditions such as mentioned below:
1. Where there is an unavailability of the resources
2. High concurrency
3. Denial of service attacks and so on.
– The stress testing is focused up on identification of the transactions pushing them to a level where the can break rather than examining the whole data base and environment as in the case of load testing.
– The data base may not fall under much stress in case if certain transactions are stressed during the stress testing of the system whereas the data bases are bound to experience a heavy load and transactions do not.