Debugging software is an expensive part of the maintenance process, which is itself a significant cost of software ownership. The more knowledgeable you are of the debugging process and the tools available that support debugging, the less time and effort you will spend finding and resolving bugs . Some well-known authors and developers have even suggested that testers should be at least as good at programming as the people who write the code themselves . I am inclined to agree that this would be a desirable state of affairs, but too often the only testing done is by the programmers. Thus we need to be well equipped to satisfy this unfortunate dual role.
In this chapter you learned that Visual Basic .NET has significant support for debugging and testing built into the Visual Studio .NET integrated debugger and classes in the System.Diagnostics namespace. A few of the capabilities are revamped mainstays, like Debug , Trace , and Assert . However, new capabilities like Boolean switches, the event log, trace listeners, and performance counters facilitate managing and discovering information about every aspect of your software before and after you deliver it.