バグった!って言うけど、バグって何?

はじめに

アプリが変な動きをしたとき、「バグった!」と言ったことはありませんか。

プログラムの不具合を バグ(bug) と呼ぶのは、昔のコンピュータに虫が挟まって壊れたから——そんな話を、どこかで聞いたことがある方も多いと思います。

結論から言うと、その話は 半分正しくて、半分ちがいます。1947年に本物の蛾がコンピュータのリレーにはさまったのは 事実 ですが、「だからバグと言うようになった」わけではありません。もともと、アメリカの技術者が機械の小さな不具合を bug と呼んでいた 比喩 が、コンピュータの世界に持ち込まれた——というのが、より正確な説明です。

この記事では、動画台本と同じ流れで、次の順に整理します。

  1. 日常で言う「バグ」とは何か
  2. ITの世界でのバグの定義(何がバグで、何がバグではないか
  3. なぜ「虫」なのか——比喩の正体
  4. 語源の有名話:1947年の蛾
  5. 語源の本編:エジソンと19世紀の工学用語

目次

  1. 一般の「バグ」——日常では広い
  2. ITにおけるバグの定義
  3. バグと呼ばれるもの・呼ばれないもの(一覧表)
  4. グレーゾーン——議論になりやすい例
  5. 虫の比喩——虫食いと「外部要因」の誤解
  6. 語源①:1947年、ハーバード Mark II の蛾
  7. 語源②:エジソンと、コンピュータ以前の bug
  8. まとめ

📹 動画版もあります
同じ内容を動画で解説した版も用意しています。文章より音声の方が好みという方は、そちらもご覧ください。


1. 一般の「バグ」——日常では広い

プログラミングをしていなくても、「ゲームにバグがある」「アプリがバグった」と言います。

ここでのバグは、だいたい 「なんかおかしい」「思ったとおりに動かない」 という意味です。画面が固まる、ボタンが効かない、変な数字が出る——原因がまだ分からなくても「バグかも」と言いがちです。エラーの赤い画面を見て「バグだ!」となることもあります。

つまり日常の「バグ」は かなり広い 使い方をしています。プログラムを扱う人が言うバグとは、少しずれがあることが多いです。次の章からが、その「プロ寄り」の話です。


2. ITにおけるバグの定義

大雑把な一言

ITの文脈で大雑把に一言でいうなら、バグは次のようなものです。

ソフトや設計を直さないと解消しない欠陥

たとえば、条件分岐の書き間違い、要件の読み違え、設定ファイルのタイプミス。こうした 作ったものの中に残った誤り が、バグです。プログラムのコードに限らず、設計書や仕様書の誤りも含まれます。

ミス → 欠陥(バグ)→ 障害

ソフトウェアテストの世界(ISTQB など)では、次の順番で整理することが多いです。

人的ミス(mistake / error)
    ↓ 仕様書・設計・コードなどに残る
欠陥(defect / fault / bug)
    ↓ 実行時に発火すると
障害(failure)——おかしな結果として見える
用語意味バグとの関係
ミス / エラー人が間違える(>>= と書く等)バグの 原因。バグそのものではない
欠陥 / バグ要件を満たさない誤りが成果物に残ったものISTQB では bug は defect の同義語
障害実行時に見える誤動作(クラッシュ、誤った計算結果)バグが顕在化した 結果。必ずしもバグが原因ではない

大事なのは、「人がミスしたからバグではない」のではない という点です。むしろ ミスがバグ(欠陥)を生む のが主流の考え方です。

「バグ=外部から忍び込んだ虫が悪い」というイメージを持つ人もいますが、ソフトのバグの多くは 人が作った設計やコードの一部 です。虫が勝手に入ってきたわけではありません。


3. バグと呼ばれるもの・呼ばれないもの(一覧表)

ここが本記事の核です。厳密に近い目線 で、何がバグに含まれ、何が含まれないかを表にまとめました。

含まれる(広くバグと呼ばれる)

種類人的ミスか
コーディングミス条件分岐の誤り、off-by-one、typo による構文エラー✅ ほぼ常に
設計・仕様の欠陥要件の読み違え、仕様の抜け、誤ったアルゴリズム設計
ハードウェア設計の欠陥Pentium FDIV バグ、回路設計ミス✅(設計者のミス)
実虫・物理障害(歴史的)Mark II の蛾、断線、部品不良❌ 物理原因だが、当時も 既存の比喩語 bug で記録
潜在バグまだ発火していない欠陥(レア条件でだけ出る race condition)多くは ✅
設定・ドキュメントの誤り誤った環境変数、マニュアルの誤記

潜在バグは、実行するまで表面化しない点に注意です。「動いているからバグはない」とは限りません。

含まれない、または別語を使う(文脈による)

種類なぜバグと言いにくいか
設計範囲外の事象自然災害によるサーバー停止、停電設計対象外の不具合は bug ではない(工学一般の整理)
純粋な環境・インフラ障害クラウド側の障害、回線断、メモリ不足(想定外の場合は別)障害(failure) だが、ソフトの 欠陥(defect) ではない
ユーザー操作ミス間違った入力(※ソフトが正しく弾くべきだった場合はソフト側バグ)操作ミス自体はバグではない
劣化・経年変化ディスクの物理劣化、接触不良の進行ハードの故障として bug と呼ぶこともあるが、ソフト文脈では incident / outage と分けることも
仕様どおりの動作「仕様書にそう書いてある」意図した挙動「It’s not a bug, it’s a feature」(バグではなく仕様、という冗談)

日常会話で「全部バグ」と言ってしまいがちなのは、主に 下の表の「障害」側 と、上の表の「欠陥」側 を混同しているためです。回線が切れただけなら、それは多くの場合 環境の問題 であり、ソフトのバグとは別枠です。


4. グレーゾーン——議論になりやすい例

次のようなケースは、文脈によって「バグ」と言うかどうかが分かれます。

状況見方
ネットワークタイムアウト回線断そのものはバグではない。タイムアウト時に二重送信する などの実装はバグ
ハード劣化部品寿命は自然だが、劣化を検知・冗長化していない設計 は欠陥とみなせる
通信失敗プロトコル実装の誤りならバグ。相手側のダウンは環境要因
セキュリティ脆弱性業界では vulnerability と分けることも。バグの一種 とみなすことも多い

「直さないと解消しない欠陥」という一言定義は、初学者向けの説明として だいたい7割程度は当たります が、上のような境界でずれます。だからこそ、表で一度整理しておくと便利です。


5. 虫の比喩——虫食いと「外部要因」の誤解

英語の bug は直訳すると「虫」です。日本語にも 虫食い という表現があり、本や紙の一部が欠けた状態を指します。

英語の bug も日本語の虫食いも、共通するイメージがあります。

ぱっと見は正常なのに、中に小さな欠けや不具合が紛れ込んでいる。

19世紀のアメリカの技術者は、機械の中に 見えない虫が潜んでいる から動かない、と考えて bug と呼んだ、という説明が史料上もなされています。1889年の新聞記事では、エジソンがフォノグラフの「バグ」を見つけるために徹夜したとあり、imaginary insect(想像上の虫) が中に潜んでいる、という比喩だと説明されています。

だから「バグ」という語を聞くと、外から何かが入ってきた問題 に聞こえるかもしれません。しかしソフトのバグの多くは、前述のとおり 人が作った欠陥 です。虫の比喩は、原因を外部にやりすごすためではなく、小さくて見つけにくい不具合 を短く表すための、技術者の言い方に近いと考えられます。


6. 語源①:1947年、ハーバード Mark II の蛾

バグに関して いちばん有名なエピソード を、ここで詳しく見ます。

何が起きたか

項目内容
日時1947年9月9日(午後)
場所マサチューセッツ州ケンブリッジ、ハーバード大学の Harvard Mark II
状況算術ユニットのテスト中に機械が停止。リレーの接点に 蛾(moth) が挟まっていた
記録蛾を取り除き、ログブックに貼り付けて 「First actual case of bug being found」(バグが見つかった初の実例)と記した
現物ログブックはスミソニアン博物館(アメリカ国立歴史博物館)に所蔵

直訳どおりの虫が不具合の原因だった、という 実話 です。グレース・ホッパーがチームの一員として関与し、後に講演でこのログの写真を見せたことから、「ホッパーがバグという語を生み出した」という俗説も広まりました。

よくある誤解

誤解正しい情報
Mark I で起きたMark II で発生
1945年の夏ログの日付は 1947年9月9日
この事件で「バグ」が生まれた数年前から 計算機分野で bug / debug は使われていた
「初の実例」=語の起源比喩的な bug に対する、文字どおりの虫の実例 という言葉遊び

1944年4月17日の Mark I ログには、すでに「Mr. Durfee from I.B.M. was here to help us find ‘bugs’」という記述があります。ホッパー自身も、蛾の事件より前の文書で debugging notetape bugs pursued and captured という表現を使っています。

つまりログの 「first actual case」 は、「やっと 本物の虫のバグ が見つかった!」という、すでにあった言葉の 最高のダジャレ に近い位置づけです。語源の誕生エピソードとして語られることが多いですが、正体はそういうものです。


7. 語源②:エジソンと、コンピュータ以前の bug

蛾の話より ずっと前 から、bug という語は使われていました。

事件より前の証拠(抜粋)

  1. 1875年 — 電信雑誌 The Operator:四重電信の不具合を「バグ」と呼ぶ記述
  2. 1878年11月 — エジソンの手紙:「『バグ』と呼ばれるような小さな欠陥や困難が現れる」(電灯開発の文脈)
  3. 1889年3月1日 — イギリス紙 Pall Mall Gazette:エジソンがフォノグラフの「バグ」を見つけるため徹夜した、との報道
  4. 1945年 — OED 補遺が debugging を収録(王立航空学会誌の引用)

語源の流れ(簡略)

19世紀:米国の電信技術者・発明家が機械の不具合を "bug" と呼ぶ
    ↓
1870年代:エジソンが広く使い、一般にも知られる
    ↓
1940年代:IBM技術者がハーバードの Mark I チームに用語を伝える
    ↓
1944〜:計算機のハード・ソフト両方の欠陥を "bug" / "debug" と呼ぶ
    ↓
1947年9月:Mark II で「文字どおりのバグ(蛾)」を発見 → ログに記録
    ↓
1950年代:コンピュータ文書・一般メディアに普及

エジソンがこの言葉を 作った というより、当時の 工学の隠語 を使っていた、というのが今の通説です。IT用語としてのバグは、いきなりコンピュータから生まれたわけではなく、19世紀の電気・機械の世界から持ち込まれた言葉です。


8. まとめ

いまの「バグ」とは

  • 日常では「おかしい・動かない」全般
  • ITでは ソフトや設計を直さないと解消しない欠陥
  • ミス → 欠陥(バグ)→ 障害 の順で考えると整理しやすい
  • 回線断だけ、仕様どおりの動作は、必ずしもバグではない(§3 の表を参照)

虫の比喩

  • 小さくて見つけにくい不具合 のイメージ
  • 日本の 虫食い にも近い
  • 外から虫が入った のではなく、多くは人が作った欠陥

語源

  • 1870年代からエジソンらの時代に工学用語として存在
  • 1947年の蛾 は実話だが、語の起源ではない
  • 「初の実例」 は、比喩を文字どおりにした有名な記録

プログラミングを学ぶ方へ

これから「バグ」という言葉を使う機会は増えます。怖い虫の話ではなく、直すべき欠陥があるサイン と捉えるとよいでしょう。デバッグ は、その原因を探して取り除く作業です。


参考・関連

お気軽に無料相談を

オンラインで気軽にご相談ができます。入校お申込みもこちらから。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です