
工学において、バグとは、ソフトウェア、コンピュータハードウェア、電子機器、回路、機械などの工学的システムにおける設計上の欠陥であり、望ましくない結果を引き起こすものです。自然災害によるサーバーのクラッシュなど、設計の範囲外の欠陥はバグではなく、また、天候などの自然システムにもバグは発生しません。
バグは非技術的な用語です。欠陥の他に、より正式な用語としては、エラー、欠陥、不具合などがあります。バグは、持続的、散発的、断続的、または一時的なものがあり、コンピュータにおいては、クラッシュ、フリーズ、グリッチなどがバグの一種です。
望ましさは主観的なものであるため、ある人にとって望ましくないものが、別の人にとっては望ましいものとなる場合がある。そのため、バグの報告に対して時折、「これはバグではなく、機能です」という、しばしば滑稽な返答がなされる。
中英語の単語buggeは、怪物を表す用語であるbugbearとbugabooの語源となっている。 [ 1 ]
欠陥を表す「バグ」という用語は、電子計算機やコンピュータソフトウェアが登場するずっと前の1870年代から、少なくとも工学用語として使われてきました。例えば、トーマス・エジソンは1878年に同僚に宛てた手紙の中で、次のように書いています。
私の発明はすべてそうでした。最初のステップは直感で、閃きとともに訪れますが、その後困難が生じます。この製品は機能しなくなり、そこで「バグ」と呼ばれる小さな欠陥や問題が現れ、商業的な成功または失敗が確実に訪れるまでには、数ヶ月にわたる集中的な観察、研究、作業が必要になります。[ 2 ]
1924年の電話業界誌に掲載された漫画では、世間知らずの登場人物が、ある男が「盗聴器ハンター」という仕事をしていると聞き、孫の手をプレゼントする。男は「『盗聴器ハンター』というのは修理工のニックネームにすぎないって知らないのか?」と答える。 [ 3 ]
最初の機械式ピンボールゲームであるバッフルボールは、1931年に「このゲームにはバグはありません!」というスローガンで宣伝されました。[ 4 ]
第二次世界大戦中の軍事装備の不具合は、バグまたはグリッチと呼ばれていた。[ 5 ]
1940年の映画『フライト・コマンド』では、方向探知装置の欠陥を「バグ」と呼んでいる。
1942年に出版された本の中で、ルイーズ・ディキンソン・リッチは動力式氷切断機について、「発明者が自分の愛する機械から虫を取り除くまで、氷の切断は中断された」と述べている。[ 6 ]
アイザック・アシモフは、 1944年に発表された短編小説「ウサギを捕まえろ」の中で、ロボットの不具合を指す言葉として「バグ」という言葉を使った。

コンピューターのパイオニアであるアメリカ海軍少将グレース・ホッパーは、初期の電気機械式コンピューターで蛾が問題を引き起こしたという話を広めた。[ 7 ]ホッパーが1947年頃、ハーバード大学の教員としてMark IIとMark IIIに取り組んでいたとき、オペレーターはMark IIのエラーの原因がリレーに挟まった蛾であることを突き止めた。蛾は機構から取り除かれ、ログブックに「バグが発見された最初の実際の事例」というメモとともにテープで貼り付けられた。 [ 8 ]伝えられるところによると、後にバージニア州ダールグレンの海軍兵器研究所に所属する ことになるウィリアム「ビル」バークを含むオペレーターたちは、工学用語に精通しており、おそらくバグの2つの意味(生物学的バグと技術的バグ)を混同して駄洒落を言ったのだろう。冗談だったとしても、この話は当時コンピューター分野でこの用語が一般的に使用されていたことを示している。[9] [ 10 ] [ 11 ] [ 12 ] [ 13 ] 蛾の痕跡が残る航海日誌は、スミソニアン国立アメリカ歴史博物館の所蔵品の一部である。[ 12 ]
関連用語であるdebugも、コンピューターでの使用よりも前から存在していたようです。オックスフォード英語辞典のこの単語の語源には、1945年の航空機エンジンの文脈での使用例が記載されています。[ 14 ]
バグとは望ましくない動作を意味するため、バグを指摘するのは主観的なものです。ある人にとってはバグでも、別の人にとっては便利な機能である場合もあるため、「バグではなく機能です」(INABIAF)というおなじみのフレーズが生まれます。[ 15 ]この冗談は『The Jargon File』(1975年)に記録されていますが、少なくとも1971年に遡ります。当時、Digital Equipment Corporation (DEC)のPDP-8プログラマーであるSandra Lee Harrisは、 DECのFOCALインタープリタのコードで修正すべき問題と、ユーザーマニュアルで文書化または明確化すべき問題を区別しました。 [ 16 ]
このような動作は、ユーザーに明示的に伝えられる場合もあれば、文書化されないままの場合もある。