Performance Testing
Performance Testing
Jagadeesh.K
Outline
Introduction
to Performance
Testing Load Testing Stress Testing Why Performance Testing? When is it required? What should be tested?
determining the speed or effectiveness of a computer, network, software program or device. Before going into the details, we should understand the factors that governs Performance testing: Throughput Response Time Benchmarking
Throughput
Capability of a product to handle multiple transactions in a give period. Throughput represents the number of requests/business transactions processed by the product in a specified time duration. As the number of concurrent users increase, the throughput increases almost linearly with the number of requests. As there is very little congestion within the Application Server system queues.
Response Time
It is equally important to find out how much time each of the transactions took to complete.
Response time is defined as the delay between the point of request and the first response from the product.
The response time increases proportionally
Benchmarking
A very well-improved performance of a product makes no business sense if that performance does not match up to the competitive products. A careful analysis is needed to chalk out the list of transactions to be compared across products so that an apple-apple comparison becomes possible.
(speed), throughput and utilization of system to execute its required functions in comparison with different versions of the same product or a different competitive product is called Performance Testing. Performance testing is done to derive benchmark numbers for the system. Heavy load is not applied to the system Tuning is performed until the system under test achieves the expected levels of performance.
Load Testing
Process of exercising the system under test by feeding it the largest tasks it can operate with. Constantly increasing the load on the system via automated tools to simulate real time scenario with virtual users. In the testing literature, the term "load testing" is usually defined as the process of exercising the system under test by feeding it the largest tasks it can operate with. Load testing is sometimes called volume testing, or longevity/endurance testing
Examples:
Testing a word processor by editing a very large document. For Web Application load is defined in terms of concurrent users or HTTP connections. Testing a client-server application by running the client in a loop against the server over
Stress Testing
Trying to break the system under test by overwhelming its resources or by taking resources away from it. Purpose is to make sure that the system fails and recovers gracefully. The main purpose behind this is to make sure that the system fails and recovers gracefully This quality is known as recoverability.
Example:
Double the baseline number for concurrent users/HTTP connections take the database offline, then restart it Rebuild a RAID array while the system is running Un processes that consume resources (CPU, memory, disk, network) on the Web and database servers
resolve. Reduces development cycles. Produces better quality, more scalable code. Prevents revenue and credibility loss due to poor Web site performance. Enables intelligent planning for future expansion. To ensure that the system meets performance expectations such as response time, throughput etc. under given levels of load. Expose bugs that do not surface in cursory testing, such as memory management bugs, memory leaks, buffer overflows, etc.
Hackers delivered over 1-Billion transactions concurrently to each one of these sites. Yahoo eBay Buy.com Amazon eTrade How did you think they performed ?
When is it required?
Design Phase: Pages containing lots of images and multimedia for reasonable wait times. Heavy loads are less important than knowing which types of content cause slowdowns. Development Phase: To check results of individual pages and processes, looking for breaking points, unnecessary code and bottlenecks. Deployment Phase: To identify the minimum hardware and software requirements for the application.
Conclusion
The goal of performance testing is not to find bugs, but to
eliminate bottlenecks and establish a baseline for future regression testing. The Goal Of Load testing is to increase the load/services/https connection with in a time interval The main purpose behind this madness(Stress Testing) is to make sure that the system fails and recovers gracefully -- this quality is known as recoverability.
Queries ??