In Part 1 I focused on removing misleading details and unnecessary repro steps from bug reports.  I tried to make the case that a tester’s job is to narrow a bug’s repro steps down to only those actions or data that are actually required to experience the bug.

Now let’s discuss the exceptions and how to handle them.  Here are two reasons to include non-required data in bug reports:

  • It is not feasible to rule out certain data as relevant.
  • It is helpful for the person following the repro steps to reuse data already identified by the repro steps author, to save time.

IMO, the repro steps (and the bug report itself) should reflect that said data is or may be non-required.  I do this by providing the extra data in a comment for a specific repro step.  For example:

  1. Create a new order.
  2. Add at least two line items to the new order. (I added Pens and Pencils but it appears that any two line items cause the bug)
  3. Submit the new order.

Expected Results: No errors are thrown.
Actual Results: “Object reference not found” error is thrown.

In some cases, there may have been significant searching to find data in a specific state.  One can save time for the bug report reader by providing tips on existing data.  For example, maybe the bug only occurs for orders in an “On Hold” state:

  1. Open an “On Hold” order.  (I used Order# 10054)
  2. Add at least two line items to the new order.
  3. Submit the new order.

Expected Results: No errors are thrown.
Actual Results: “Object reference not found” error is thrown.

Again, the core repro steps more or less capture the relevant data pertaining to the bug.  The notes, speed up the repro process.  Look at how the opposite approach may mislead:

  1. Open Order# 10054.
  2. Add at least two line items to the new order.
  3. Submit the new order.

Expected Results: No errors are thrown.
Actual Results: “Object reference not found” error is thrown.

The above instance makes the bug look like it is just a problem with order# 10054.  A skilled tester should have figured out the “On Hold” order state is key.

In conclusion, start with some repro steps.  Question each of your steps until you narrow them down to only the required data.  Then add any notes to aid the reader if necessary, being careful to offset those notes from the core steps.  That’s what I do.  What’s your approach?

3 comments:

  1. Cathy said...

    I run a software testing company and I have found your post quite insightful. I'll apply the strategies you highlighted on the blog.

  2. Dwarika said...

    Really nice though about handling Non-required data in bug report -part 1 & 2

    Worth reading your blog post and would like to be the regular reader to get more learning from you and from your Posts

  3. Zora Ferrel said...

    A very good read on the strategies in handling non-required data in bugs. Thanks for sharing such an informative post.



Copyright 2006| Blogger Templates by GeckoandFly modified and converted to Blogger Beta by Blogcrowds.
No part of the content or the blog may be reproduced without prior written permission.