Perform a full
design and/or code review on the broken code
Throw
away the section of code and redesign/recode it from scratch
Throw
away the whole program and redesign/recode it from scratch
Compile
code with full debugging information
Compile
code at pickiest warning level and fix all the picky compiler warnings
Strap on
a unit test harness and test the new code in isolation
Create an
automated test suite and run it all night
Step
through a big loop in the debugger manually until you get to the error condition
Instrument the code with print, display, or other logging statements
Replicate
the end-user’s full machine configuration
Integrate
new code in small pieces, fully testing each piece as its integrated
from book...