Debugging Strategies
Regardless of the approach that is taken, debugging has one overriding objective
to find and correct the cause of a software error or defect. The objective is realized
by a combination of systematic evaluation, intuition, and luck. Bradley [Bra85]
describes the debugging approach in this way:
Debugging is a straightforward application of the scientific method that has been developed
over 2,500 years. The basis of debugging is to locate the problem,s source [the
cause by binary partitioning, through working hypotheses that predict new values to be examined.
Take a simple non-software example: A lamp in my house does not work. If nothing
in the house works, the cause must be in the main circuit breaker or outside; I look around