Finding bugs often begins as a time-consuming and haphazard process. Each engineer should run the product in his or her own area after making any significant changes before committing the results to the central repository. Engineering organizations soon learn that testing is a costly but unavoidable part of the process. Changes made in one directory or module may not seem to have effects elsewhere, when they actually do. Unexpected inter-relationships among modules may result in bugs popping up in unexpected places.
Bugs can lurk around for quite a while before being discovered.
The same testing tasks may be repeated many times before other tasks are attempted the first time. These test scripts should be placed under source code control, just like any other file associated with the project. The test script should be written in plain English such that someone who is computer-aware but not necessarily a developer can understand and carry it out. Make sure that the next page shows the correct sum. It might then go on to include test cases for more complicated cases, tab ordering, hitting forward and back on the browser, etc.