Enterprise Library Test Guide - Willy .Net
Enterprise Library Test Guide - Willy .Net
Enterprise Library Test Guide - Willy .Net
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
168<br />
<strong>Enterprise</strong> <strong>Library</strong> <strong>Test</strong> <strong>Guide</strong><br />
Scalability tests are extensions of performance tests. The outstanding characteristic<br />
of a scalable application is that it only requires additional resources to operate under<br />
additional loads instead of requiring extensive modifications to its code. The goals of<br />
scalability testing are:<br />
●<br />
●<br />
To determine any performance gains the application block achieves with additional<br />
system resources, such as CPUs or computers, or any additional external<br />
resources, such as a SQL Server database or a disk array.<br />
To identify any locking and contention problems that may not be detected by<br />
performance tests.<br />
Although performance affects how you determine the number of users that an application<br />
can support, scalability and performance are two separate requirements.<br />
Performance optimizations may reduce an application’s scalability and scalability<br />
optimizations may reduce an application’s performance.<br />
This chapter contains the following sections:<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
●<br />
Defining Performance Criteria. This section defines the performance criteria that<br />
are used to test the application blocks. The performance criteria describe the<br />
performance goals for the <strong>Enterprise</strong> <strong>Library</strong> in terms of system metrics and<br />
transaction times. For example, a performance goal may be to have less than 10<br />
locks per second. Another goal may be to have transaction times that are less than<br />
250 milliseconds (ms).<br />
Setting Up the <strong>Test</strong> Environment. This section describes the <strong>Enterprise</strong> <strong>Library</strong> test<br />
environment.<br />
Building <strong>Test</strong> Harnesses. This section describes how to create a test project, Web<br />
tests, test harness script, and a load test.<br />
<strong>Test</strong>ing the Application Blocks. This section describes how each application block<br />
was tested.<br />
Detecting Performance Issues. This section describes the performance parameters<br />
you should monitor to detect performance issues in the application blocks.<br />
Measuring Performance. The section describes the performance metrics for the<br />
application blocks. Examples include the amount of system resources each application<br />
block uses and the transaction times for API calls. It also describes performance<br />
counters you can use to measure performance.<br />
<strong>Test</strong>ing for Scalability. This section describes the objectives of the scalability tests<br />
and analyzes the results for several application blocks.<br />
Measuring Initialization Costs. This section describes how to measure the amount<br />
of system resources and time necessary to prepare an application block so that it<br />
can begin to execute requests.<br />
Extrapolating Workload Profiles. This section describes how to use Little’s Law to<br />
characterize workloads.<br />
Debugging Memory Leaks. This section explains how to use the WinDbg debugger<br />
to detect memory leaks.