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
8+
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!

Notes

  • “The Jargon File: Schroedinbug”
  • CATB.org, “phase of the moon”
  • CATB.org, “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

DevOps Model: The Role of QA Redefined

By Yana Andyol
1+
Reading Time: 5 minutes You might have come across DevOps so often that it may seem to penetrate each and every organization slightly related to IT. But the reality is different, as always. The point is that
Read more

Software Testing Documentation: Overview

By Yana Andyol
3+
Reading Time: 5 minutes Ok, we didn`t really want it but seems like it is high time to dwell upon not that joyful stuff. Our team has never been into bureaucracy, yet documents remain crucial for our
Read more

Common Myths of Software Testing Outsourcing

By Yana Andyol
5+
Reading Time: 4 minutes Have you come up with the option to outsource software testing services? Maybe you were excited to share this at the meeting, but someone shot it down right away warning about personal data
Read more

QA Madness Acquires a Prominent Position Among Top Testing Companies at GoodFirms

By Anna Senchenko
3+
Reading Time: 3 minutes The article is created by GoodFirms content writer. GoodFirms recognized QA Madness for its excellent testing services and has enlisted the organization among the top testing companies in Lithuania. The company is soon
Read more

Top 10 Software Testing Blogs to Follow

By Yana Andyol
2+
Reading Time: 3 minutes While heavy books and guidelines come in handy for the enthusiastic beginners in realms of software testing, this is not quite a strategy for experienced QA engineers. The rise of Youtube and blogging
Read more

Blog