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+

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

Software Testing Life Cycle: a Model-Based Explanation

By Yana Andyol
1+
Probably, life has been much easier at times, when “coding” meant software development. Today, we realize that tech progress is unstoppable. Big data systems require architects, analysts, developers, QA engineers work together to
Read more

Don`t Question Responsive vs Adaptive Design: Focus on Product Quality

By Yana Andyol
4+
We see no point in debating the topic, just treat it like product development, define your goals, establish website quality assurance strategy, and measure your progress. The area of web design & development
Read more

Wireless era: what to expect and how IoT software testing evolves

By Yana Andyol
6+
Bain`s latest research has brought a lot of insights on the way IoT might change the businesses in the nearest future. The study predicts the combined markets in the field will reach $520Bn
Read more

Common User Interface Bugs or Why UI Testing Matters

By Yana Andyol
6+
The article is created in partnership with Clutch.co editorial team. In any industry, a lot of thought goes into how people are going to interact with your product. It can be a great
Read more

What do Businesses Expect from 5G Technology?

By Yana Andyol
6+
Read how 5G technology may change business 1G brought us communication. 2G enabled texting. 3G united talking, texting, and data. 4G is a faster version of 3G. In 2019, we`ll see the launch
Read more

Blog