Good Bug Reports and Tracking
Every developer, no matter how experienced, has to dig in and fix bugs. This is, in my experience, the typical cycle:
- bug is reported
- bug is assigned to developer
- developer thinks the bug is fixed
- developer marks bug as resolved
- tester checks to see bug is fixed, but it isn’t.
- tester reopens bug, assigns it back to developer
- back to step number two. Repeat until developer (or tester) climbs to the top of a 307 foot administrative building with high-powered rifles to demonstrate USMC-worthy marksmanship.
- A detailed description of the problem. Note the emphasis on problem. Odds are you don’t have the solution, so don’t bother. Let the programmer figure out the solution. For example: Using version 3.1415 of the application on 28-July-2009, I was expected a date to be calculated a certain way based on some values. The application didn’t crash, but the correct date was not calculated.
- What you expect to happen. If you have some sort of formal spec, repeat it here, and cite how to find the spec. i.e. According to Page 1054, in section 1095.4.3.2 the new date is to be calculated as follows : add the value of ((a - b)- 10) /2 (rounding down) to the date Y for a new date of Z.
- What actually happened. i.e. Using these values a=300, b= 150 and Y of 1-Sep-2009 I expected that the new date Z should be 2-Oct-2009
- A step-by-step description of HOW to duplicate the bug. This means explaining in excruciating detail HOW the programmer can duplicate what your reporting, i.e.
- Go to the URL http://myproblem.com/is/here
- Click on the text box next to the label “Value A:” and enter a value of 300
- From the drop down list by “Value B:” and click the value 150 from the drop down list
- Use the tab key to navigate to the “Calculate new date” button.
- Hit Enter
- The text box by the “New Date:” label now has the date of 4-July-1943. I expected 2-Oct-2009.
- How the developer can get a hold of you. This comes in handy when for some reason the developer can’t duplicate your bug or doesn’t understand what you were doing.