Detecting | Debugging |
Examine the crime scence |
Examine the output |
Form a hypothesis (what happened? whodunnit?) |
Form a hypothesis (what might have caused this behaviour?) |
Look for clues (to strengthen hypothesis) |
Look at code (to strengthen hypothesis) |
Gather evidence |
Observe program behaviour** |
If hypothesis supported, arrest the perpetrator |
If hypothesis supported, change code to fix problem |