Working with programmers and customers I find it is sometimes harder for me to verify the fix for a defect, than to fix a defect for a developer.
Just a simple example is when there is
NullPointerException thrown by a method. A bug report contains no steps to reproduce the issue, just a stacktrace. Given such a poor report, a developer corrects the code so the method swallows such exceptions or re-write the method. Then he marks the defect as fixed.
As a tester I usually care more about the context. Why
null values arrived to the method? Which component produced it and why? So simply swallowing the exception is not a solution: it probably did't removed the error. Rather it masked it.
This kind of problems usually happens, when someone else reported a bug (not me), for instance a customer representative, and I see the bug report only when verifying the fix.
So it all boils down to the quality of bug report. If steps to reproduce weren't written before fixing the bug, they must be identified after the fix. And then it is often hard to do it, because I need to check-out/setup two system versions from SVN: one before the fix, and another after the fix was committed.
So how can we improve the process?
- Shouldn't testers and devs complete the bug report with steps to reproduce before fixing it? I don't care who will do it, but I think such a step should be present in the bug lifecycle here.
- If devs and testers cannot collect information from customer to reproduce the bug, should they patch it (as in the example above) or reject a bug report as "cannot reproduce"?
EDIT: Maybe I wasn't clear enough. I haven't asked how to write a good bug report. I'm rather looking for practical ways to make devs, customer representative, business analysts, me, etc. complete a bug report as it goes through our hands. Some solutions other have proposed so far:
- introduce templates in bug reports
- review good and bad reports with stakeholders to demonstrate how they help or hinder reproducing bugs and fixing them
- gently ask customer for more details (talking to a customer seems a separate art to me), particularly for what they did before the failure occurred.
Particularly, I haven't seen any answer what a dev should provide in a bug report after fixing the bug? Root cause? What areas were touched? How were they changed? In which revision change was committed?