Load Testing is a type of performance test where the application is tested for its performance on normal and peak usage. The performance of an application is checked with respect to its response to the user request and its ability to respond consistently within an accepted tolerance on different user loads.
The key considerations are:
- What is the maximum load the application is able to hold before the application starts behaving unexpectedly?
- How much data the Database able to handle before the system slows or the crash is observed?
- Are there any network related issues to be addressed?
Stress Testing is used to find ways to break the system. The test also provides the range of maximum load the system can hold.
Generally, Stress Testing has an incremental approach where the load is increased gradually. The test is started with a load for which the application has already been tested. Then, more load is added slowly to stress the system. The point at which we start seeing servers not responding to the requests is considered the breaking point.
The following questions are to be addressed:
- What is the maximum load a system can sustain before it breaks down?
- How is the system break down?
- Is the system able to recover once it’s crashed?
- In how many ways a system can break and which are the weak node while handling the unexpected load?
Volume Testing is to verify that the performance of the application is not affected by the volume of data that is being handled by the application. In order to execute a Volume Test, a huge volume of data is entered into the database. This test can be an incremental or steady test. In the incremental test, the volume of data is increased gradually.
Generally, with the application usage, the database size grows, and it is necessary to test the application against a heavy database. A good example of this could be a website of a new school or a college having small amounts of data to store initially, but after 5-10 years, the data stores in the database of the website is much more.
=> Is the application capable of meeting business volume under both normal and peak load conditions?
Capacity Testing is generally done for future prospects. Capacity Testing addresses the following:
- Will the application be able to support the future load?
- Is the environment capable of standing for the upcoming increased load?
- What are the additional resources required to make the environment capable enough?
Capacity Testing is used to determine how many users and/or transactions a given web application will support and still meet performance. During this testing, resources such as processor capacity, network bandwidth, memory usage, disk capacity, etc. are considered and altered to meet the goal.
Online Banking is a perfect example of where capacity testing could play a major role.
Reliability Testing or Recovery Testing – is to verify whether or not the application is able to return back to its normal state after a failure or abnormal behavior and how long does it take for it to do so (in other words, time estimation).
If an online trading site experiences a failure where the users are not able to buy/sell shares at a certain point of the day (peak hours) but are able to do so after an hour or two, we can say the application is reliable or recovered from the abnormal behavior.
Performance Test Process
Here are all the activities performed in this testing:
#1) Requirement Analysis/Gathering
The performance team interacts with the client for identification and gathering of requirements – technical and business. This includes getting information on the application’s architecture, technologies, and database used, intended users, functionality, application usage, test requirement, hardware & software requirements, etc.
#2) POC/Tool selection
Once the key functionality is identified, POC (Proof Of Concept – which is a sort of demonstration of the real-time activity but in a limited sense) is done with the available tools.
The list of available tools depends on the cost of the tool, protocol that application is using, the technologies used to build the application, the number of users we are simulating for the test, etc. During POC, scripts are created for the identified key functionality and executed with 10-15 virtual users.