566 CHAPTER 13 ■ APPLICATION DESIGN AND IMPLEMENTATION
■Note NUnit is a free, stand-alone application that’s great if you continue to use Visual Web Developer. If you use Visual Studio 2005, however, you’ll be pleased to know that you can run NUnit as an add-in, using TestRunner for Visual Studio .NET (http://www.mailframe.net/Products/TestRunner). Visual Studio 2005 also has its own testing environment (and a whole lot more) called Visual Studio Team System. Team System is currently in the final stages of its beta process and should be available soon. For more details about Team System, see http://msdn.microsoft.com/vstudio/teamsystem/default.aspx.
Unit testing applies to only single modules, but you need to account for the way modules interact with each other, as well. Do they successfully share session and user information, for instance? If one module makes a call to another, is that call being made for the purpose the method was originally intended, or is it being forced into the engine of another car? If the latter is the case, you may want to investigate why this is being done and how better to achieve the desired results before continuing.
■Note You can also find several good books that cover performance issues and testing. See Performance Tuning and Optimizing ASP.NET Applications by Jeffrey Hasan and Kenneth Tu (1-59059-072-4; Apress, 2003) and Test-Driven Development in Microsoft .NET by James W. Newkirk and Alexei A. Vorontsov (0-73561-948-4; Microsoft Press, 2004).
All software, once completed, will have some bugs in it. No matter how thoroughly you test the Web site before it goes live, there will be problems. Like death and taxes, it’s one of the few things in life that can be guaranteed.
When a bug is discovered, you need some way of being informed of the issue. In most cases, this will be an e-mail message informing you that an end user has experienced a problem. Or maybe you’re using the Error event of the Application in Global.asax to automatically log the error (into a log file, by e-mail, or even directly into the database). However you’re notified of the error, you need to deal with it.