From the Publisher
Software testing is for some developers an annoyance, for others the only way to work. Testing has a number of different roles in any development project. Ensuring that the software is working properly is the most obvious, but testing can also be used to check performance, search specifically for memory leaks and other bugs, handle environment testing, and to ensure that your software works within the operating system and with any other tools that your software uses or relies upon. If your software has a user interface element, then it also needs to be tested, and your entire stack needs to be confirmed and tested across all of the different environments and systems you expect to deploy them on.