Distance Debugging Logo

What if you look at that initial bug report and no possibilities jump to mind? It happens for many reasons. Sometimes, the nature of the bug being reported is so bizarre and unlikely that you can't even imagine why it might happen. Other times, the bug report itself is impenetrable and you can't even tell what might be wrong. How do you start the process of formulating a theory? Here are a few techniques for getting the investigation rolling:

  • Tell me a Story - Contact the person reporting the bug (if available) and ask them to tell you the story of what happened leading up to and immediately after the bug occurred in an informal way. Often it will reveal details that the reporter did not think were relevant originally but which turn out to be crucial.
  • Give it a Shot - If the bug report lays out a set of steps to reproduce and you have the ability to attempt them in some fashion, give it a shot. Often there is an initial psychological barrier of doubt where a bug is hard to take seriously because it seems implausible. The effect of making it happen can catalyze your thinking when it forces you to accept the reality of the problem.
  • Ask for Corroboration - This is useful in the case where the bug appears to be in a an apparently heavily-used piece of code, in which case, it would surprising that no one else is encountering it. It can help to send out a message to other users asking if they have seen this problem, or if they would be willing to try the steps. The results can tell you one of a few things: the reported activity is actually uncommon (in the case that it is easily replicable, but no one else has hit it), it is very common, and users just haven't been reporting it (happens more than you think), the reporting user's installation might be corrupted or broken (when no one else can replicate except the reporter), or the steps to replicate are slightly or majorly incomplete or incorrect, which happens because people can't quite remember what they did.
  • Ask for Replication - Often a user will report something the first time it happens, which is good. The problem is, often it's an odd one-time occurrence that never happens again. You will tear your hair out trying to replicate and track down something that very, very rarely occurs. If no one can replicate after a few attempts, make a note of it and move on (see tomorrow's post, Saying No)
  • Check the History - Bug tracking will be covered in another post, but assuming you are keep good records, check for similar bugs. Perhaps the combination of the newly found problem and a previously unsolved bug will give you enough evidence to suddenly find a solution for both.
  • Look for Non-obvious Changes - If all else fails and you suddenly have a repeatable bug and there is no obvious cause, start to look into non-obvious changes. Was some unexpected system maintenance performed? Was a piece of hardware upgraded or swapped out? This can be a somewhat open-ended investigation, but start by looking at the software and hardware that would have the most obvious effect on the failure.

Tomorrow: Saying No to a Bug Report