One of the world’s most popular forms of fiction is the detective novel, particularly the murder mystery. There are all kinds of detectives found in this genre. There are police professionals, private detectives, and avocational dabblers in detection. There are modern detectives and detectives from historical settings, all the way back to ancient Rome. Literary critics believe that the appeal of the murder mystery is the combination of the clear delineation of right and wrong and the intellectual challenge of identifying a villain.
What does all of this have to do with finding software defects? We can make an analogy between the murder mystery and the search for a software defect. The defect is considered a crime, and the programmer is the detective. A detective who wants to solve a crime needs answers to the following questions:
Who did it?
How did the culprit do it?
When did the culprit do it?
Why did the culprit do it?
Here, we’re interested in observing the thought processes and methodologies of these literary detectives.