Software debugging
Software debugging is an iterative activity involving execution testing and code correction. It differs significantly from implementation testing, which will be covered in the next chapter. Implementation testing is aimed at demonstrating the application's correctness, and can be performed in various ways, some of which might not even involve code execution. Debugging, on the other hand, is aimed at locating and correcting code defects.
Debugging is a multi-step process, which can be outlined by the following process diagram:
As seen in the preceding diagram, the process starts with executing the code under a particular set of conditions, and with a specific end result in mind. The list of possible start conditions used in debugging typically covers the common success and error cases. During debugging, it is important to verify that the code handles errors gracefully in common scenarios, such as incorrect input or inaccessible data store. This means that the "success criteria...