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.

Introduction<br />

<br />

This section provides an overview of functional testing as it was used with the <strong>Enterprise</strong><br />

<strong>Library</strong>. To see how a specific application block or the <strong>Enterprise</strong> <strong>Library</strong> Core<br />

was tested, refer to the relevant chapter. In general, there are four steps to functional<br />

testing:<br />

1. Create the test cases for the design and the code.<br />

2. Perform design reviews to verify that the design addresses all functional requirements.<br />

3. Perform code reviews to verify that the code addresses all functional requirements.<br />

4. Perform automated tests to validate that the application is functioning as it<br />

should and to simulate situations such as multiple users concurrently using the<br />

application.<br />

Creating <strong>Test</strong> Cases<br />

Design test cases specify the requirements that a design must fulfill for the application<br />

to perform the way it is expected to. Each test case should be satisfied by a<br />

specific part of the design. For example, if the application is meant to be extensible,<br />

there must be a specific way that the application can be extended, such as an interface<br />

or a base class.<br />

When you write the design test cases, have a list of requirements and any designrelated<br />

documents, such as architectural diagrams and class diagrams, available so<br />

you can incorporate this information into the test cases. The Microsoft test teams<br />

found it helpful to create tables that listed each design requirement and its priority.<br />

Table 1 is an example of some of the design cases for the Cryptography Application<br />

Block.<br />

Table 1: Cryptography Application Block Design <strong>Test</strong> Cases<br />

Priority<br />

High<br />

High<br />

High<br />

Design <strong>Test</strong> Case<br />

Verify that the symmetric algorithm providers and the hash providers are extensible.<br />

Verify that there is a consistent approach to creating symmetric algorithm providers<br />

and hash providers.<br />

Verify that there is a facade that mediates between the client code and the<br />

application block’s cryptographic functions such as encryption, decryption, and<br />

hashing.

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

Saved successfully!

Ooh no, something went wrong!