What Are Unusual Software Bugs?

While some software bugs are simple and easy to find, others are more complex and can be a programmer's worst nightmare. Unusual software bugs refer to a class of programming flaws that are extremely difficult to both comprehend and repair. There are several types, primarily named after the historic scientists who introduced theories that personify their strange behavior.

Schroedinbugs

This type of programming bug only manifests after the programmer reading the code or the person using the program somehow discovers that it never should have worked to begin with. At that point, the program ceases to function until it's repaired.

The name Schroedinbg originates from the Schrodinger's Cat illustration proposed by Erwin Schrondinger.

Heisenbugs

A Heisenbug is one of the most common of unusual software bugs. This bug is very unique as it alters or conceals its characteristics when researched. The best example would be an error that is encountered in a release-mode compile but not found when researched in debug-mode. This type of bug is often the result of a race condition.

One reason for this unusual behavior is due to the fact that performing an execution in debug mode typically clears out the memory before the program launches, forcing variables onto stack locations rather than maintaining them in registers.

The Heisenbug got its name from the Heisenberg Uncertainty Principle, a concept that describes how observers impact the measurements of what they are observing, by the mere act of observing; this is known as the Observer Effect. Aptly titled, the Heisenbug is just as complex as the quantum physics term it was named after.

Bohrbugs

Often referred to as a Bohr bug, the Bohrbug is an unusual software bug that consistently makes its presence known under conditions that are either well-defined, possibly unknown or both. Unlike a Heisenbug, the Bohrbug does not hide or modify characteristics when research is performed. This makes the errors much easier to fix yet harder to actually locate. These type of software bugs may remain in the software all the way up to and during the operational stage.

The Bohrbug received its name from the Bohr Atom Model proposed by Niels Bohr in 1913.

Mandelbugs

This unusual software bug is named after Benoit Madelbrot, a fractal innovator of the early 1900s. A Mandelbug is a programming bug with such a level of complexity that its behavior appears to be malicious. The term is often used to refer to a bug whose behavior doesn't appear malicious, but has such a high level of complexity that it appears to be no practical solution. A prime example would be a bug generated from an error in the fundamental design of an entire operating system.

The Unusual Family

There are numerous inconsistencies in documented statements regarding the association between Heisenbugs, Bohrbugs and Mandelbugs. Some say that Mandelbugs are actually Bohrbugs while Bohrbugs and Heisenbugs are antonyms. A recently published column in IEEE considers most software bugs to be either Bohbugs or Mandelbugs. The complexity of the Mandelbug is assumed to be the result of lengthy delays in between fault activation and failure occurrence or by the presence of other components such as the hardware, the operating system or other software. Since the behavior of a Heisenbug is triggered by a debugger or other means of investigation, the column considers it a Mandelbug.

 

(0 Comments)
Log in or sign up to comment.

Post a comment

Log in or sign up to comment.

With the advent of wireless Internet, more and more computer users are entering the world of cyber space.

Yet, while these users are well aware of the importance of the protection of their computer when hooked up to regular internet providers, they are often oblivious to the fact that the same cyber dangers, and in fact even more, exist in the world of WiFi.

What you may not know is that same Internet connection that makes it possible to check your email from the comfort of your bed also makes it easier for hackers to access your personal information.

It is for this reason, the sharing of the wireless Internet connection, that protecting your computer when wireless is even more important than ever before.