【ばぐ】

バグ とは?

💡 プログラムに潜む「虫」、見つけて退治するのがエンジニアの日常
📌 このページのポイント
正常な処理 vs バグがある処理 正常 入力 処理(正常) 正しい結果 ✓ バグ 入力 処理(バグ) 🐛 エラー / 誤動作 バグの例: 計算ミス 無限ループ クラッシュ 表示崩れ
バグのイメージ
ひよこ ひよこ

バグって本当に虫が関係してるの?

ペンギン先生 ペンギン先生

有名な話があって、1947年にハーバード大学のコンピューター「Mark II」の中に本物の蛾が挟まって故障したんだ。グレース・ホッパーという技術者がその蛾をノートに貼り付けて「最初の本物のバグ」って書いたのが語源とされてるよ。ただ「バグ」って言葉自体はそれ以前からエジソンの時代に使われていたらしいけどね。

ひよこ ひよこ

バグってどうやって見つけるの?

ペンギン先生 ペンギン先生

いくつか方法があるよ。テストコードを書いて自動で検出する方法、デバッガーというツールでプログラムを1行ずつ実行して調べる方法、ログ(記録)を確認する方法。あとは「この入力をしたらどうなる?」っていろんなパターンを試す手動テストもあるね。

ひよこ ひよこ

バグがあるとどんな問題が起きるの?

ペンギン先生 ペンギン先生

軽いものだと「表示が少しずれる」程度だけど、ひどいと「データが全部消える」「お金の計算を間違える」「セキュリティの穴ができて情報が漏れる」なんてことも。実際に銀行のシステムのバグで何億円も誤送金された事例もあるんだ。

ひよこ ひよこ

バグを完全になくすことってできないの?

ペンギン先生 ペンギン先生

残念ながら、ある程度以上の規模のソフトウェアでバグをゼロにするのは事実上不可能と言われてる。テストで品質を上げることはできるけど、「バグがないこと」を証明するのは「バグがあること」を証明するよりはるかに難しい。形式手法っていう数学的にプログラムの正しさを証明する分野があるんだけど、これが使えるのはごく小規模なプログラムや、航空宇宙・医療みたいなミッションクリティカルな領域に限られてる。コストが桁違いにかかるから、普通の開発では「バグは出る前提で、いかに早く見つけて直すか」という考え方のほうが現実的なんだよね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「バグ」って出てきたら「プログラムの中の間違い。直すのがデバッグなんだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Bug」 = 虫
💬 1940年代にコンピューターの中に本物の虫(蛾)が入り込んで故障したエピソードが有名。そこから「プログラムの不具合=バグ」と呼ばれるようになったよ
← 用語集にもどる