Thursday, February 3, 2011

Debugging is an Art - BTB Series 1

As part of Back To Basics, I decided to take on Debugging which is most commonly used and S/W Engineers spending time WW. It is at various levels and know as various names and many even hate this but can't live without it.
Weather we are using IBM AIX System or we have applications like WebSphere or any InfoSphere applications and even DB2 or Oracle. We have to do the debugging when we use them.
So here is my take.

Developing vs maintenance are two different approaches. In the product Life Cycle it is the maintenance which last for long, require deep skills and techniques to proceed. As all aware it is process of isolating and correcting the cause which test care uncovers. Or say process which results in removal of error.
Debugging is not simply looking at the problem and test case and identify the solution. "It is an ART". Engineers need to be confronted with the situation with "symptomatic" indication of the problem. i.e. External manifestation of error and the real internal cause without having any obvious relationship with one another.
So let me define saying an Art or poorly understood mental process which connects symptom to a cause is called "Debugging".
Another confusion people have is it is testing but it is not but always occur as a consequence of testing.
Debugging always have 2 outcomes
  1. cause found and corrected
  2. cause not found and have to follow suspect, proceed approach with more tests. Keep validate the suspicion until problem found in iterative manner
Problem or in field term named as "bug" provides clue with its behavior.
  1. Symptom may be geographically remote and even not appear part of program but impact a site that is far removed. Highly coupled components exacerbate this situation.
  2. Symptom disappear temporarily as a effect of another error correction
  3. Can be impact of non errors as termed round-off inaccuracies
  4. Human error and most difficult to be traced
  5. Result of timing problem rather than processing issue
  6. Difficult to accurately reproduce the input conditions as in real situation input ordering is indeterminate
  7. Issue is intermittent
  8. impact of parallel processing as tasks distributed across and running on various processors

I will discuss various Strategies and Tactics for debugging in extended part 2 of this series

Disclaimer: "The postings on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.

No comments:

Post a Comment