Blog   Breaking Bad in your code or how software bug can make fun of you?

Breaking Bad in your code or how software bug can make fun of you?

By Author
Reading Time: 3 minutes

First of all, what is “software bug”? Everyone understands that it isn’t an insect ( well, not anymore, anyway 🙂 ).
According to Wikipedia: software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.” Some bugs can be detected easily during development. But some bugs might be found late in the development process.

There have been many attempts to classify the bugs.
Most of these represent the general classification which is valid in the cycle of software development and evolution. The classification scheme given in Orthogonal Defect Classification defines eight categories of defects as assignment, checking, algorithm, interface, timing/serial, function documentation, and build/pack/merge. Most everything in such classification understandable, useful and boring.
But, sometimes, going through a code, you may face a dark horse from the bug’s world. There are some software bugs that involve conditions so strange and complicated no one can understand their causes:

  • Heisenbug

    The most bossy bug in this list was named after Walter White aka. Heisenberg, from Breaking Bad, and… Wait… It seems like something is wrong… Here it is! Actually, it was named after theoretical physicist Werner Karl Heisenberg and his uncertainty principle.
    This is a type of bugs which disappear or change their characteristics as soon as somebody’s trying to study them. The examples of a heisenbug can sometimes be found in a program’s released version, but never in its debug-mode version. Such a bug can also be caused by the race condition.
    Heisenbugs may be viewed as instances of the observer effect in information technology. Frustrated programmers may humorously blame a heisenbug on the phase of the moon, or (if it has occurred only once) may explain it away as a soft error due to alpha particles or cosmic rays affecting the hardware.

  • Bohrbug

    To ever meet this bug you’ll need a ghosts basters skill. Why? Cos nickname for this bug is “ghosts haunting the code”.
    Bohrbugs often sit in those pieces of source code which are invoked least often. By opposition to Heisenbug, a bohrbug is a “good, solid bug”. Like the deterministic Bohr atom model, it doesn’t change behavior, but still, it is pretty difficult to find and fix. This type of bugs manifests itself consistently only under some well-defined, but often unknown or unique set of conditions or entered data. Luckily, these bugs don’t alter when researched.

  • Mandelbug

    Named after Benoit Mandelbrot’s fractal, a computer bug of this kind has such complex causes that its behavior gets chaotic. Some use the term “mandelbug” to refer bugs with very complex causes which make it impossible to find some practical solution. Such a bug can be caused, for instance, by some flaw in the entire system’s fundamental design.
    However, based on the analogy with the Turing test, the existence of this category of bugs is controversial: If it’s impossible to distinguish a bug whose behavior is similar to the chaotic and bug whose behavior is chaotic, then the difference between Mandelbug and Heisenbug not essential, since impossible to tell who is who.

  • Schroedinbug

    This bug was named after Erwin Schrödinger and his famous thought experiment with a cat and box. This bug only manifests when somebody using a program in some unusual way or reading source code notices it should have never worked at all, and at this point that the program stops working promptly right until it’s fixed. Despite the proximity of the occult, it happens. Some programs are fraught with latent Schroedinbug for years.
    With the statement that the system should have never worked under these circumstances before, despite clear evidence of the opposite (the system worked before reading the code!), and because of complexity of computing systems the programmer can only appeal to the supreme and hidden forces.

All of it cases of program failure could be called as “Phase of the Moon bugs”, a random parameter on which something is said to depend. And that’s not all of bugmonsters you may find.

By following the dangerous path of developers and testers, one day you may play hide and seek with Higgs-Bugson, Hindenbug, Loch Ness Monster Bug, Mad Girlfriend Bug, etc., in program code. Be aware, stay cool!


  • “The Jargon File: Schroedinbug”
  •, “phase of the moon”
  •, “Heisenbug”, “Bohrbug”, “Mandelbug”, “Schroedinbug”.
  • Wikipedia “Heisenbug”
  • “Log Book With Computer Bug”, National Museum of American History, Smithsonian Institution.
  • Bugs or Defects?
  • List of Common Bugs and Programming Practices to avoid them Vipindeep V, Pankaj Jalote Indian Institute of Technology, Kanpur
  • “A Story About ‘Magic” by A. Hacker Folklore

Latest Posts

Software Testing Outsource – FAQs Revealed

By Yana Andyol
Reading Time: 5 minutes Since the outsource of software testing services is a multi-faceted process, it is natural for the questions to occur at any stage of cooperation with a software testing company. This is the reason
Read more

Misconceptions of the Automated Testing Debunked

By Yana Andyol
Reading Time: 4 minutes Recently, automated software testing has been widely identified as game-changer for software projects. With artificial intelligence quickly gaining traction, total automation sounds like an inevitable reality. Yet those jumping to conclusions gave birth
Read more

Cutting-Edge Technology: The Era of Disruptive Innovation

By Yana Andyol
Reading Time: 5 minutes Today are the times when an idea is turned into a real business so easily and so quickly. Start-up and middle-sized businesses are rising up and challenge the status-quo of the incumbent companies
Read more

Testing Time Estimation Methods: Factors to Encounter

By Yana Andyol
Reading Time: 4 minutes Often, management of the companies that outsource QA services asks to analyze the time required for testing efforts. But this index is hard to predict, a range of aspects elude the measurement. Some
Read more

Small Business Migration Alternative: Shopware vs. Magento 2

By Yana Andyol
Reading Time: 4 minutes The dynamic world of eCommerce is full of the events shaping the industry today and the future direction of its growth. Adobe acquisition of Magento triggered several subjects for debate. One of the
Read more