The term Computer Bug or Software bug is commonly used but have you ever thought from where did this term come from in the first place? The modern form has existed since the invention of computers. However, the term bug is much older. A computer bug is generally defined as “a bug refers to an error, fault or flaw in any computer program or a hardware system. A bug produces unexpected results or causes a system to behave unexpectedly. In short, it is any behavior or result that a program or system gets, but it was not designed to do.” Most bugs occur due to the mistakes and errors made by the developers while constructing the source code. It can be within the components and operating system which is used by the program. Some bugs are also the result of errors in translation between different languages by compilers which produce the incorrect code.
The term ‘buggy’ is used for a program that has a large number of bugs and a bug which is composed of the software’s functionality. Bugs can also trigger errors and can produce ripple effects. Software bug can be subtle and limited in effect or can cause the program to crash or freeze. Other bugs also lie under the security. These bugs allow a malicious user to bypass access controls to obtain the unauthorized privileges. It should also be noted that things like computer viruses are not bugs. They behave the same way, but they are not bugs.
Every developer knows that there are very few completely error-free programs and even those are tested extensively. This is the reason most software packages have a series of “point updates” which are issued over time to fix “bugs” and errors found during the usage. There has been a history where these bugs brought catastrophic consequences. For example during the 1980s, a code that controlled the Therac-25 radiation therapy machines resulted in the deaths of patients since it encountered a bug. In 1996, the European Space Agency prototype Ariane 5 rocket self-destructed 1 minute after its launch because of some software errors in the onboard guidance systems.
The 1994 RAF Chinook helicopter also crashed in the Mull of Kintyre and killed all 29 crew members who were onboard. It was initially blamed that the pilot was on the fault; however, later inquiries showed that the accident occurred due to a computer bug in the control system of the aircraft’s engine. In 2002, a study from the US Department of Commerce’s National Institute of Standards and Technology said, “Based on the software developer and user surveys, the national annual costs of inadequate infrastructure for software testing is estimated to range from $22.2 to $59.5billion. Over half of these costs are borne by software users in the form of error avoidance and mitigation activities. The remaining costs are borne by software developers and reflect the additional testing resources that are consumed due to inadequate testing tools and methods.”
The term ‘Computer Bug’ is a new terminology used in the IT field. The term bug has been used in informal engineering terminology for some time as well. The concept goes as back in time like 1843 when Ada Lovelace spoke about the possibility of problematic program cards which are used in Charles Babbage’s analytical engine. In a letter in 1843, she said, “an analyzing process must equally have been performed in order to furnish the Analytical Engine with the necessary operative data, and that herein may also lie a possible source of error. Granted that the actual mechanism is unerring in its processes, the cards may give it wrong orders.”
The first time the term bug was used with regards to an error came from Thomas Edison. In a letter in 1878 to an associate, he said, “You were partly correct, I did find a ‘bug’ in my apparatus, but it was not in the telephone proper. It was of the genus ‘callbellum.’ The insect appears to find conditions for its existence in all call apparatus of telephones.” This was about his attempt to develop a quadruplex telegraph system to transmit and receive up to four separate telegrams on a single wire. He termed this system a ‘bug trap.’ He used this term extensively in his later writings, and a biography published later also used the word ‘bug’ many times in his notebooks. The same year he wrote to Theodore Puskas and said, “It has been just so in all of my inventions. The first step is an intuition and comes with a burst, then difficulties arise—this thing gives out and [it is] then that “Bugs”—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.”
Before the computers and software were conceived of, the term bug was commonly used to describe errors or faults in mechanical systems. The actual reasoning for the first use of the term bug is not clear. It might have its origins in early English parlance though. Some people suggest that it might deviate from the Middle English Bugge which forms the basis of the term bugbear and bugaboo. It became a popular term sometime in the mid of 1800 for the mechanical faults whose source was yet to be identified. From there onwards, this term was commonly used for unidentified errors in the program till the present day. One influencer who made this term famous in the minds of the general public was Issac Asimov. He used the word to relate to issues with a robot in his 1944 short story ‘Catch the Rabbit.’
The term debug also used in the computer age. Wikipedia showed that this term is applied to the airplane engines and the testing thereof during the second world war. By 1963, the terms bug and debugging were commonly used to be mentioned in the Compatible Time-Sharing System (CTSS) manual without any attempt to explain its meaning. The very first example of a computer bug was recorded on the 9th September 1947. This bug was a real-life bug and was extracted from the number 70 relay, Panel F, of the Harvard Mark II Aiken Relay Calculator. It was preserved for all the time behind an adhesive tape on the machines logbook with the phrase “First actual case of a bug being found.” So the first computer bug, was in fact, a real insect.
Moths and insects have a behavior called transverse orientation. This is a way in which the insects tend to navigate, and they do this by flying at relative angles to a distant light source. This strategy served the insects well for millions of years. But with the invention of electricity and the artificial lighting, they do get confused on regular occasions. Graham Cluley said, “This log book, complete with attached moth, is part of the collection of the Smithsonian National Museum of American History, though it is not currently on display. While it is certain that the Harvard Mark II operators did not coin the term ‘bug,’ it has been suggested that the incident contributed to the widespread use and acceptance of the term within the computer software lexicon.”
Grace Hopper was released from active service after the war in 1946. That was when she joined the Harvard Faculty at their Computation Laboratory. She continued her work on the Mark II and Mark III computers. On 9th September 1947, Grace traced an error on the Mark II to a dead moth which was trapped in a relay. The insect was removed and taped to the log book, and the term computer bug was coined once again. Since then the term bug was used to describe any errors or glitches in the program. It wasn’t Grace herself but her team of engineers who found the insect and noted its presence in the Mark II’s logbook. The engineers included William Bill Burke as well. Bill and his colleagues were well versed in the meaning of the term and Hopper took great pleasure in recalling the whole story.