Username Password Remember Me Forgot your Password?

Load Testing

Software Testing Techniques

Introduction

Load testing generally refers to the practice of modeling the expected

usage of a software program by simulating multiple users accessing

the program's services concurrently. As such, this testing is most

relevant for multi-user systems, often one built using a client/server

model, such as web servers. However, other types of software systems

can be load-tested also. For example, a word processor or graphics

editor can be forced to read an extremely large document; or a

financial package can be forced to generate a report based on several

years' worth of data. The most accurate load testing occurs with

actual, rather than theoretical, results.



When the load placed on the system is raised beyond normal

usage patterns, in order to test the system's response at unusually

high or peak loads, it is known as stress testing. The load is

usually so great that error conditions are the expected

result, although no clear boundary exists when an activity ceases

to be a load test and becomes a stress test.

 

There is little agreement on what the specific goals of load testing are.

The term is often used synonymously with performance testing, reliability

testing, and volume testing.



Testing

Load and Performance testing is to test software intended for a multi-user
audience for the desired performance by subjecting it with an equal amount
of virtual users and then monitoring the performance under the specified load,
usually in a test enviromnent identical to the production, before going live.
For example if a web site with a shopping cart is intended for 100 concurrent
users who are doing the following functions:

    * 25 VUsers are browsing through the items and logging off
    * 25 Vusers are adding items to the shopping cart and checking out
       and logging off
    * 25 VUsers are returning items previously purchased and logging off
    * 25 VUsers are just logged in without any activity

Using various tools available to generate these VUsers the application is
subjected to a 100 VUser load as shown above and its performance is
monitored. The pass fail criteria is different for each individual organization
and there are no standards on what an acceptable criteria should be, across
the board.

It is a common misconception that these are record and playback tools like
regression testing tools, however it must be clarified that the similarity ends
just there. The Load testing tools work at the protocol level where as the
regression testing tools work at the GUI object level. To give an example
a regression testing tool will simulate a mouse click on an OK button on
the browser, but a load testing tool will send out the hypertext that the browser
will send after the user clicks the OK button, and again it will send out the
hypertext for multiple users each having a unique login ID and password.

Tools

Various tools are also available to find out the causes for slow performance
which could be in the following areas:

    * Application
    * Database
    * Network
    * Client side processing
    * Load Balancer

Input

The following are useful inputs for load-testing a Web application:

  • Performance-critical usage scenarios
  • Workload models
  • Performance acceptance criteria
  • Performance metrics associated with the acceptance criteria
  • Interview feedback from the designer or developer of the Web application
  • Interview feedback from end users of the application
  • Interview feedback from the operations personnel who will maintain and manage the application

Output

The main outcomes that load testing helps you to accomplish are:

  • Updated test plans and test designs for load and performance testing
  • Various performance measures such as throughput, response time, and resource utilization
  • Potential bottlenecks that need to be analyzed in the white-box testing phase
  • The behavior of the application at various load level

 

Approach for Load Testing

The following steps are involved in load-testing a Web application:

Step 1 - Identify performance acceptance criteria

Step 2 - Identify key scenarios

Step 3 - Create a workload model

Step 4 - Identify the target load levels

Step 5 - Identify metrics

Step 6 - Design specific tests

Step 7 - Run tests

Step 8 - Analyze the results

 

Summary

 

Load testing helps to identify the maximum operating capacity of the

application and any bottlenecks that might be degrading performance.

The basic methodology for performing load testing on a Web

application is to identify the performance-critical key scenarios; identify

the workload profile for distributing all the load among the key scenarios;

identify metrics that you want to collect in order to verify them against

your performance objectives; create test cases that will be used to simulate

the load test; use tools to simulate the load according to the test cases and

capture the metrics; and finally, analyze the metrics data captured during

the tests.

 

 

 







Another articles:


Search Articles  


Your place for 1000+ free Software Testing and QA articles, testing tools, discussions, news and the best bunch of testers on the net.
q       What is Software QA Testings?     q       Privacy Policy 
q       Join Software QA Testings Today   q       Contact US
q       Chapters, Sections and Articles