07.11.2014 Views

Enterprise Library Test Guide - Willy .Net

Enterprise Library Test Guide - Willy .Net

Enterprise Library Test Guide - Willy .Net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Test</strong>ing for Performance and<br />

Scalability<br />

<strong>Test</strong>ing the <strong>Enterprise</strong> <strong>Library</strong> application blocks for performance and scalability<br />

involves testing the library’s set of application blocks under both normal and peak<br />

loads. The tests are performed without incorporating the application blocks into a<br />

full-fledged application. The goals of the performance tests are:<br />

●<br />

●<br />

To verify that the application blocks meet the performance requirements while<br />

staying within the budgeted constraints on system resources. The performance<br />

requirements can include different measurements, such as the time it takes to<br />

complete a particular scenario (this is known as the response time) or the number<br />

of concurrent or simultaneous requests that can be satisfied for a particular operation<br />

within a given response time. Examples of system resources are CPU time,<br />

memory, disk I/O, and network I/O.<br />

To analyze the behavior of the application blocks at various load levels. Performance<br />

tests that measure this behavior use metrics that relate to the performance<br />

objectives and other metrics that help to identify the bottlenecks in the application<br />

blocks. A bottleneck is the device or resource that constrains throughput. Most of<br />

the time, performance bottlenecks in your application relate to resource issues that<br />

may include server resources, such as CPU, memory, disk I/O, and network I/O<br />

or other external resources, such as available database connections or network<br />

bandwidth. Bottlenecks can be caused by various issues, such as memory leaks,<br />

slow response times, and contention for resources while under load.<br />

Performance tests for the application blocks fall into two broad categories:<br />

●<br />

●<br />

Load tests. Load tests monitor and analyze the behavior of an application block<br />

under both normal and peak load conditions. Load tests enable you to verify that<br />

the application block meets the performance objectives.<br />

Stress tests. Stress tests identify problems that occur both when the application<br />

block operates under heavy load conditions and when it must operate under these<br />

conditions for lengthy periods of time. The application block may fail under these<br />

conditions because it has depleted some system resources. Another goal of stress<br />

testing is to see if the application block can recover when its load exceeds the<br />

specified limits and then returns to normal. In short, when you run stress tests,<br />

monitor the application block to see if its performance degrades under heavy<br />

loads and to see if its performance recovers after the load returns to normal.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!