Heisenbug - Influenza A virus subtype H5N1 Tester’s Nightmare!

hard to reproduce piece you lot are getting the crash easily inward your examination machine.
2. You tin terminate top the crash inward your teammate’s (tester) organization yesteryear next the examination steps.
But the developer says he doesn’t meet anything awkward later next your steps!
3. Every time, you lot “Reopen” the põrnikas alongside a comment telling that you lot are however able to top the crash, the developer keeps reverting it dorsum alongside a resolution “Can’t Reproduce”!

These are *testing times* for a *tester*. These are times when you lot start doubting the credibility of the developer. And start wondering if (s)he is doing this purposefully! When you lot desire to proper substantive at summit of your vocalization too demonstrate the developer the crash concealment when it crashes inward your system. When you lot desire to ship loathe emails to the developer to allow out your frustration.

But doing such things may jeopardize your testing career! So a improve option, inward my opinion, may hold upward is to attempt too discovery out the argue why the developer is non finding the crash too human action accordingly. Few of import context-driven questions that nosotros ordinarily forget to enquire inward such situations are:

1. Why is the developer maxim that (s)he is non able to top the crash? Why is (s)he repeatedly turning dorsum my bug-report alongside a “Can’t reproduce” resolution?
2. Is (s)he actually unable to reproduce the crash? If yes, what could hold upward the possible reason?
3. Does my
bug-report incorporate clear too concise steps to reproduce the crash? Does it incorporate all the details required to top the crash? Is something lacking inward it? Have I missed to include or too then of import pre-conditions/test information required to generate the crash inward my report?
4. Why is the crash too then easily reproducible inward my (and other tester’s) system, too yet too then tough to reproduce inward the developer’s machine?
5. Is the developer also using the same construct as mine piece trying to reproduce the crash? I
s (s)he using a dissimilar construct from the VSS piece trying to top the crash?
6. What powerfulness hold upward the major deviation betwixt a tester’s machine too a developer’s machine (apart from the possible differences inward hardware configuration alone)?
7. Similar questions that conform best to your context.

If you lot are able to enquire such questions at correct time, chances are keen that you lot may top answers to the job “Why the developer is non able to reproduce the crash”. Instead of blaming the developers for rejecting our bug-reports alongside a “Can’t Reproduce” tag attached to it, nosotros should rather pass our unloosen energy on finding the displace for it. Makes sense? Read on.

The final time, when I was trying to figure out why the developer was non able to reproduce my crash, I establish an interesting answer! The crash, which I had reported turned out to hold upward a heisenbug! Confused yesteryear the foreign terminology? Even I was also as confused when I heard this term for the starting fourth dimension time! Influenza A virus subtype H5N1 heisenbug is a reckoner põrnikas that disappears or alters its characteristics when i attempts to probe or isolate it!

In our case, it turned out that the work of a debugger inward the developer’s machine was altering the program's operating surroundings significantly plenty that the buggy code (which was a resultant of uninitialized variables) behaved quite differently from the release-mode construct (compiled) that I was using. Execution of the programme inward debugger-mode was clearing the retention earlier the programme starts too was forcing the variables onto stack locations, instead of keeping them inward registers. To brand things worst, the debugger was provided alongside user interface that was changing the state of the programme piece the code was executed!

This was the argue why my developer friend was non getting the crash inward his organization running inward debugger-mode. And I was getting the crash close alongside ease, as I was using the release-mode build! After finding out this, it was non a big describe of piece of work for the developer to create the crash. Had nosotros non discovered this crash to hold upward a heisenbug, I powerfulness bring been forced to “Close” the number i day, without e'er knowing the argue why the developer was struggling to discovery the crash. Worst still, as it was a crash inward a basic functionality of the application, chances were high that the halt users would bring faced it too!

Well, this is i type of heisenbug, which occurs inward a release-mode construct (compiled) but non when investigated nether debugger-mode. There tin terminate hold upward or too then other types of heisenbugs, which are ordinarily caused yesteryear race conditions, the number of a pointer running out of bounds etc. This term (heisenbug) is a play on Heisenberg's Uncertainty Principle from Quantum Physics, which implies that the human action of mensuration a particle (such as bouncing a photon of lite off it) also affects the particle. In other words, the rattling human action of observing something affects what is existence observed, making experiments too the similar hard since only looking at what’s happening changes the result!

So adjacent time, a developer reverts dorsum a bug-report alongside a “Can’t Reproduce’ tag, nosotros should hold upward careful to investigate to a greater extent than on it too meet what powerfulness hold upward restricting the developer from finding the problem. If you lot had whatever similar experience, arrive at portion alongside us yesteryear leaving behind a comment.


Happy Testing...


More interesting articles here :Tutorial Software
Sumber : http://www.softwaretestingtricks.com/
Post a Comment (0)
Previous Post Next Post