Wednesday, 9 December 2015

What is Load Testing?



Load Testing is a process by which simulated demand is put on the application under test to demonstrate its  behavior under different load conditions. Load Testing generally applies ordinary stress to the application to review its performance under regular anticipated conditions. Its final objective is to establish that the software is able to handle the load it has been designed to handle. 

Load Testing, a key type of performance testing, enables to measure the response times, throughput rate and the level of  resource utilization of the software application. It subjects the associated hardware, server, the network to its load limits. This can be done under lab conditions to accurately get an idea of  its capabilities or it can be conducted in the field to get a qualitative idea of its functions in the real world. 



Endurance testing is a type of loadtesting. It subjects the application to load volumes over an extended period of time. Endurance Testing quantifies the Mean Time to Failure and Mean TIme Between Failure.

Steps for Load Testing-

Step 1: Identify the performance acceptance criteria. This is determined by balancing the business, technology, competition and user requirements. The objectives of test generally include:

- Response Time

- Throughput

- Resource Utilization

- Business Load

- Maximum User Load

Step 2: Identify the anticipated user scenarios with high risk key performance goals. The main steps for identifying these scenarios are:

-  Identify the scenarios for the Web Application

-  Identify the activities in each scenario

-  Identify the commonly executed, most resource intensive scenarios

Step 3: Once the key scenarios are identified, the workload profiles can be created to design load tests. For this, the characteristics of the user scenario need to be defined.
- A user scenario can be thought of as a user session, which can include navigational paths and a number of intermediate steps to complete a task.

- Consider user pause as user delay or think time.

- Define the average time for each session for multiple concurrent views.

- Define the primary users.

Step 4: Identify the target load levels to ensure that the tests can be used to compare a variety of load conditions. The common inputs used for this are:

- Key Scenarios

- Volume of business

- Work distribution

- Session characteristics

Step 5: Identify the metrics that are most relevant to the performance objectives. Only well selected metrics provide valuable information. This can be done by:

- Defining performance questions that can be tested.

- Determine quality goals

- Identify the metrics

- Identify the supporting metrics

- Regularly reevaluate the metrics to be collected

Step 6: Designing tests can be done through the scenarios defined, selected key metrics and the workload analyzed. Each test has its own purpose, and is able to collect its own data and have its different target load levels.  Tests are designed to collect information that helps to understand, evaluate and enhance the application.

Step 7: Load simulations need to reflect the tests designed in order to collect useful information. The following points need to be considered for this:
 
- Configure the test environment as per the production environment.

- Ensure the not interference of performance counters with the simulation.

- Use appropriate tools for load generation.

- Begin with a small number of users, continue to increase the load, record the behavior till the threshold is reached, identify when the system crosses the threshold limit and continue to do so till the SLA limit is violated.

Step 8: Result Analysis

- Analyze the recorded data against the accepted level to determine the inward or outward trend from the performance objective.

- Analyze the data and identify the potential bottlenecks.  


Conclusion:

Load testing enables us to quantify the maximum operating capacity of an application. It should not be confused with Stress testing, which is performed to determine the application's breaking point. It is a more severe form of testing, which helps to record the different warning signals that a software gives out before its actual breakdown.

No comments:

Post a Comment