"Is this going to be a stand-up fight sir, or a bug hunt?" - Hudson
I've always wondered what the secrets were to writing a great bug report. Over time I've narrowed down the activity to three basic elements.
- Replicate: Once you've found the bug, replicate it.
- Document: Write it down, pack in detail where necessary.
- Communicate: Input it into the bug tracker and tell someone.
Replicate - Clearly this is the most hated step because you just made something break, why should we break it again? Unfortunately, it's part of the process. Bugs that are repeatable often give the development/implementation team a very clear view into what might be going wrong. A bug that happens one time can be very hard to track down. So, your first step if you find something wrong is to try and make it happen again. This is why it's critical that you mentally keep track of what you're doing and what you've clicked. Certain combinations can yield bugs, while others won't.
Document - The only thing worse than a bug is a bug without any details. For example, what's wrong with the following bug report?
My order failed. I think it is broken.
Aside from the fact that your order failed, there's no detail! Examples of very excellent detail:
- Steps to repeat the bug (see Step 1)
- What you were expecting vs. what you got
- Error messages that appear on the page
- What browser/operating system were you using
So if you were to rewrite the bug like the following - this will make it easier for the implementation team to investigate and solve the issue:
I'm using the following: OS: Mac OS X (10.4.9) Browser: Firefox 2.0.0.3
My order for a snuggle puppies on yoursitehere.com wouldn't go through and I'm not sure why. When I try to place the order, I end up on the order entry page with the following error message: "We're sorry, our records indicate another order has already been placed...." I was expecting to end up on the receipt page with a confirmation message and with a confirmation email in my inbox and instead I'm getting an error.
Try the following steps:
Your steps here
Communicate - In order for a bug to get corrected, the implementation team needs to know about it. This doesn't end up being as plodding as it sounds. But the sooner you let your primary developer/project manager/testing know the sooner it can be put into the queue to be fixed.
This is how I've done it ... but what makes a great bug report in your mind?