Tuesday, November 6, 2007

PERFORMANCE TESTING ON WEB APPLICATIONS

Performance of a Web site is analyzed from different viewpoints. The Web server performance depends on several factors: hardware & software platform, operating system, server software, network bandwidth and workload. There are various well-known methodologies available for performance evaluation of computer systems. The overall performance of any system mainly depends on three models:
· Workload model,
· Performance model,
· Cost model.
The workload model captures the resource demands and workload intensity characteristics of the load brought to the system by the different types of transactions and requests.
The performance model is used to predict response times, utilization, and throughputs, as a function of the system description and workload parameters.
The cost model accounts for software, hardware, network-communications and support expenditures. The scope of this paper is Workload model


1. Performance Testing

Performance testing is a class of tests implemented and executed to characterize and evaluate the performance related characteristics of the target-of-test such as the timing profiles, execution flow, response times, and operational reliability and limits. Different types of performance tests, each focused on a different test objective are implemented throughout the Software development life cycle (SDLC). Earlier in the architecture iterations, performance tests are focused on identifying and eliminating architectural-related performance bottlenecks. In the construction iterations, additional types of performance tests are implemented and executed to tune the software system to handle high load and stress conditions. (Large numbers of transactions, clients or volumes of data)

In Performance Testing the following are the types of tests

Benchmark testing:
Compares the performance of new or unknown target-of-test to a known reference standard such as existing software or measurements.

Load testing:
The test used to validate the operational limits of a web application under varying workloads while the system-under-test remains constant. Measurements are usually taken based on the workload throughput and in-line transaction response time.

Stress testing:
The test used to evaluate how the web application responds under abnormal or extreme conditions. Stresses on the web application may include extremely high number of users and resources.


2. Work load models

The workload is sum of the total burden of activity placed on the web application to be tested. This burden consists of a certain number of virtual users who process a defined set of transactions in a specified time period. Assigning the proper workload is one of the most crucial parts of any performance analysis.

Types of workload

1) Steady state work load
2) Increasing workload
3) Scenario based workload