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.
Identity theft comes in many forms.

A person\92s identity can be 'borrowed' for the purpose of creating fictional credit cards or a person\92s entire identity can be usurped to the point where they can have difficulty proving that they really are who they claim to be.

Up to 18% of identity theft victims take as long as four years to realize that their identity has been stolen.

There are many ways to protect your personal identity and many steps you can take to prevent your identity from being stolen:

*Never give out unnecessary personal information
*Never provide bank details or social security numbers over the Internet
*Always remain aware of who is standing behind you when you type in your personal credit codes at ATM machines and at supermarket checkout swipe machines.