Enterprise Library Test Guide - Willy .Net
Enterprise Library Test Guide - Willy .Net
Enterprise Library Test Guide - Willy .Net
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.