Little-known (and apocryphal) trivia: The first recorded computer “bug” was a processing error caused by a dead moth that had been caught inside a relay, blocking the switch.
The insect existed, and in point of fact has been preserved as part of the collection at the National Museum of American History, but the term “bug” was in common use for many years before the moth was found in 1946. Here are some other bugs that have been found and preserved as a part of my own collection:
Heisenbug: Only materializes when you’re not looking for it, but is impossible to recreate under observation.
Variant – Panopticon bug: This describes any code that behaves differently whenever it’s in a state where it could be observed and adjusted, versus once deployed and “in the wild”.
Glitch: Any transient bug that goes away on its own for no apparent reason. Alternately, this can refer to the ability to achieve a state within a program that was designed to be unachievable; a bug would be the opposite.
Bohrbug: A good solid bug. Highly deterministic in behavior and easily found and predicted. Never occurs in real life but frequently seen in the classroom.
Mandelbug: A bug whose causes are so complex that it defies description, much less repair. Pretty, though.
Eulerbug: The bug is real, but the only possible root cause is imaginary. (For you math geeks out there.)
Lance Armstrong bug: This is when the code never fails a test, but the results are indicative of improper behavior.
Hardware problem: Any bug that cannot be repaired without exceeding the programmer’s expertise. Examples include: Broken light bulb, blown fuse, tripped circuit breaker in the eighteen daisy-chained power strips.
User Error: No software can be made foolproof, because fools are so very ingenious.
Girlfriend Bug: You know something’s definitely wrong, and the situation is rapidly becoming dire. However, any test you can devise returns the result “Everything’s Fine.”
Spouse Bug: Even before anything goes wrong, you hear all about it.
Schrödinbug: This sort of bug is only ever discovered after the programmer realizes that the code never should have worked in the first place.
Hindenbug: When discovered, it’s already too late. If the program is the only thing that blows up you’re lucky. Duck for cover and pray.
Eugenbug: This bug was easy enough to fix, but it seems it was tied to this really huge monster bug that’s now out to raid your merchant shipping. (See Bismarckbug)
Undetectable Error: Undetectable errors are infinite in variety, in contrast to detectable errors, which by definition are limited.
Feature: Any bug that cannot be easily fixed.
Remember: Bugs come in through open Windows.