imho Debugging is the art - science? - of finding the errors in code (and/or hardware), the analysis of why the application is behaving other than expected / intended. The rest is fixing. Debugging and fixing is not always done by the same person. I see in complex cases you have pair/group debugging and single person fixing quite often.
I recognize the 5 stages billroy mentions, but there are more:
- stage 0: Unaware (ignorant?) and
.. - stage 6: the ability to recognize and // after coding
- stage 7: the ability to prevent and // while coding
- stage 8: the ability to predict. // before coding
example of 8: I know that I make mistakes with complex boolean expressions, so I can predict that there will be (big chance) bugs in it
maybe 7 and 8 should be swapped?
Probably there will be a few more (sub)stages but I'm no shrink