The First Step in Managing a Defect Is Defining It

If you know your enemy and yourself, you need not fear the result of many battles.

Sun Tzu The Art of War, 6 BC

A beautiful defect tracking system should be a conduit for information between the end user, support person, developer, and QA engineer. It should help these people collaborate on a defect’s solution. In order to do this, the defect tracking system should maintain crucial bits of information and discourage unnecessary or incorrect information. The important aspects of a defect can be broken down into the kinds of questions a detective would ask when investigating a case: who, what, when, where, and why?


A beautiful defect tracking system must serve many kinds of users. A defect report is a communication channel between the person who discovered the defect and the person with the expertise to fix it. All defect tracking systems should track who logged the defect, who fixed the defect, and who verified that the defect has been fixed. A beautiful defect tracking system should organize details according to the role of the user, possibly hiding information that isn’t relevant to a particular role. The developer needs to know how to reproduce the defect in the correct source code base. A QA person is interested in associating the bug in an existing or new test assertion. But the software user is most interested in whether the defect exists in his system and, if so, whether a patch, upgrade, or workaround exists for the defect. ...

Get Beautiful Testing now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.