One of the bugs discovered with the powertoy to start OneNote instead of opening the Outlook sticky notes folder came onto my plate looking like this:
- Install the addin
- Start Outlook
- Open the sticky notes folder
- Click the folder again
2 instances of OneNote get started
Just one instance of OneNote
I liked this bug report since it was simple, had the minimum number of steps, and always caused the problem to occur. I like the 100% reproducible steps: it's like taking your car to the mechanic and it always make the funny noise. Most of the time I take my car in and it never makes the noise when the mechanic is present. This bug also details what actually happens (the result) and the expected behavior (expect).
There are some other details kept in our bug reporting tool which can give me more information. The version of Windows the tester was running (this behavior occurred on all versions), the version number of the addin being tested and the like are also reported.
Different bug reports will require different details. For instance, performance reports should details the type and speed of the processor, amount of memory, hard drive space available, other processes running, network speed and latency and so on. UI bugs should report video card and drivers, screen resolution, number of colors, DPI and whether the behavior occurs on more than one computer.
Being able to get steps which always cause the bug to happen is critical. This is literally the same ability as having your car make the funny noise when the mechanic is present. Without them, I can guess at what could be causing the problem, but without a 100% repro, there really is no way to ensure the bug is fixed. I can change code all I want, but testing will never be able to know if the problem is fixed or simply "not occurring right now" when testing the changes. With the steps, though, it becomes relatively easy to regression test a potential bug fix.
The fix in this case was a one line change: I called System.Diagnostics.Process.Start() reuses an open instance of the application for free. My original (poor) implementation of the routine looked in the registry for the path to OneNote.exe and started it each time. I made the change, applied it to the build, retested the scenario and called this bug fixed.
Comments, questions, concerns and criticims always welcome,