23
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「デバッグ」、挟まった虫がきっかけだったって知ってました?【ITパスポート】

23
Posted at

9DAEB4F9-9A79-4835-91F5-BC3B9BE03645.png

はじめに

「デバッグ」って言葉、なんかかっこいい専門用語だと思っていたぷらむんが、ITパスポートの勉強中に由来を調べたら、まさかの展開だった話です。


こんにちわ、会社で自称マスコットキャラをやってるのに、社内で一番空気が読めない、ぷらむんです🐯

先輩たちが「これ、デバッグしといて」なんて言ってるのをたまに耳にしますが、みんな「デバッグ、デバッグ」言っててかっこよく見えるけど、変な名前〜と思っていました。


そんな中、今日もITパスポートの過去問を解いていたら、「デバッグ」という言葉に遭遇。


なんとなく選択肢の雰囲気で正解は選べたものの、なんでこんな名前なのかは全然わかっていません。


なのでプラ二郎先輩に聞いてみることにしました!


ーこんな人に読んでほしいー

🟠 「デバッグ」という言葉はよく聞くけど、由来までは知らなかった
🟠 「バグ」がなぜ不具合を指す言葉になったのか気になる
🟠 デバッグが実際にどんな作業を指すのか、日常の例えで理解したい
🟠 ITパスポートの勉強中に「デバッグ」という言葉に出会って、意味がよくわからなかった


【この記事が前提です】
「アーキテクチャ」って結局何?ITパスポートのEAを調べてみた
ITパスポートと基本情報の違いは?どちらを勉強すべき?

【参考になるおすすめサイト】
IPA ITパスポート試験 過去問題(公開問題)
ITパスポート過去問道場


🐯プラ二郎先輩に「デバッグって結局なに?」と聞いてみた

B3B197C1-B491-47F6-BAA2-C3AC90271A29.png

🧑‍💻:プラ二郎先輩
「デバッグ?かっこいい響きだと思ってたなら、由来を知ったらちょっと拍子抜けするかもね」


🧑‍💻:プラ二郎先輩
「ITパスポートだとこんな感じの問題で出てくるよ」


そう言って、先輩が見せてくれたのがこの問題でした。

🐯ITパスポートの「デバッグ」に関する類似問題を解いてみた

Q. ソフトウェア開発において、プログラムの不具合(バグ)を発見し、原因を特定して取り除く作業として、最も適切なものはどれか。

① リファクタリング
② デバッグ
③ マイグレーション
④ バックアップ

答えを見る

正解: ②デバッグ

プログラムの不具合(バグ)を発見し、原因を特定して取り除く作業がデバッグです。


①リファクタリングは、外部から見た動作を変えずに、内部のコード構造を整理・改善すること


③マイグレーションは、システムやデータを新しい環境に移行すること


④バックアップは、データの複製を別の場所に保存しておくこと


🐯そもそも「バグ」ってどういう意味?

ぷらむん_デバッグ記事_挿絵_2.jpeg

🧑‍💻:プラ二郎先輩
「まず『バグ』は英語で『虫』って意味。機械の不具合を指す俗語としては、この話より前から使われてたんだけど、それを一気に有名にしたエピソードがあるんだ」


「虫…?機械の不具合と虫が、どうつながるんですか…?」

🧑‍💻:プラ二郎先輩
「1947年9月9日、ハーバード大学にあった『Mark II』っていう計算機が誤作動を起こしたんだ。原因を調べたら、なんと本物の蛾が機械の中のリレー(継電器)に挟まっていた」


「本物の虫が原因だったんですか!?」

🧑‍💻:プラ二郎先輩
「そう。当時作業していたグレース・ホッパーさんたちのチームが、その蛾をノートに貼り付けて『初めての実際のバグ発見例』って記録したんだ。この出来事が、『虫(バグ)』と『不具合(バグ)』の意味が文字通り重なった象徴的なエピソードとして有名になって、"debug(デバッグ)"って言葉が広まるきっかけになったんだよ」


デバッグの「デ」は「取り除く」を意味する接頭辞で、「バグ(虫=不具合)」を「取り除く」作業だから「デバッグ」だったんですね。かっこいい響きの裏に、まさかの虫取りの話があったとは思いませんでした。

🐯結局デバッグってどんな作業なの?日常で例えると

ぷらむん_デバッグ記事_挿絵_3.jpeg

「由来はわかったんですけど、実際どんな作業をするのか、まだふわっとしてます…」

🧑‍💻:プラ二郎先輩
「じゃあ例え話にしよう。デバッグは、エアコンの効きが悪いときに、フィルターの汚れを見つけて掃除するのと同じイメージだよ」


🧑‍💻:プラ二郎先輩
「『効きが悪い』という症状(=不具合)に対して、原因(=フィルターの汚れ)を特定して、それを取り除く。デバッグも同じで、『プログラムが思った通りに動かない』という症状に対して、原因のコードを特定して修正する作業なんだ」


「なるほど、症状だけ見て終わらせず、原因を探して取り除くところまでがセットなんですね」

🧑‍💻:プラ二郎先輩
「そのとおり。ちなみに、意図的にいろんな条件でプログラムを動かして不具合がないか確認する作業が『テスト』、テストで見つかった不具合を実際に直す作業が『デバッグ』、っていう役割分担になってるよ」


🐯振り返ってみて感じたこと

正直、最初は「デバッグ」をかっこいい専門用語だと思い込んでいました。


でも由来を調べてみたら、実在する虫がきっかけで生まれた、意外と可愛らしいエピソードのある言葉でした。


かっこいい響きの言葉ほど、由来を知ると印象がガラッと変わることがあるんだな、というのも今回の発見でした。


虫が由来ってわかったので、なんかカッコいい響きというより....うん。って感じですね。もし先輩に「デバッグしといて」と言われたら淡々と「はい」と答えようと思います。


ー今回学んだことをまとめるとー
🟠 「バグ」は英語で「虫」の意味。1947年、実際にコンピュータの中から蛾が見つかった出来事が、この言葉が広まるきっかけになった
🟠 「デバッグ」は、バグ(不具合)の原因を特定して取り除く作業のこと
🟠 不具合がないか確認する作業が「テスト」、見つかった不具合を直す作業が「デバッグ」という役割分担になっている

🦁おわりに

PRUMのエンジニアの多くは未経験からの採用です。ぷらむんのような新人がのびのび成長できる環境が気になった方は、ぜひコーポレートサイトも覗いてみてください。
PRUM採用ページ


エンジニアの方に役立つ記事をまとめたサイトも運営しています。よければこちらもどうぞ。
エンジニアに役立つ記事サイト


また今度、ぷらむんの奮闘記をシェアします。ここまで読んでくれてありがとうございました🐯

23
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
23
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?