テックキャンプ無料カウンセリング テックキャンプ無料カウンセリング
資料請求はこちら

バグとは?エラーとの違い・言葉の由来・事例について紹介

公開: 2020.10.24 更新: 2021.02.26

>>No1エンジニア養成プログラム テックキャンプ

初めてのIT転職で読むべき!お役立ちebook3点セット

システム開発には「バグ」がつき物です。プログラミングを経験した人なら、一度は必ず聞いたことがあるでしょう。

しかし、「バグとエラーの違いは?」と聞かれると、正確に説明できない人も多いのではないでしょうか。

そこで今回は、IT業界で使われる用語「バグ」とはそもそも何なのか、その由来や事例を交えながら、エラーとの違いについても紹介します。

※この記事は現役エンジニアによって監修済みです。

バグとは

まずは、コンピューター周りで使われる用語の「バグ」について、その意味や由来を見ていきましょう。

バグはプログラムの不具合を指す

「バグ」とは、その機能の不備を生むプログラム内の不具合を指す言葉です。また、不具合とは、プログラムが仕様書通りに動かないことです。

つまり、思った通りに動かないプログラムを見て「バグがある」と表現します。

プログラムは、システムの仕様書をもとに、仕様通りに動くようコーディングしていきます。しかし、人間が作るものですので、そこには大なり小なり必ず不具合が生じるのです。

バグの由来はコンピューターに入り込んだ虫

「バグ」は英語で「bug」と表記し、直訳すると「虫」。

では、なぜプログラムの不具合をバグと表現するようになったのでしょうか。

それは、コンピューターができた初期の頃までさかのぼります。

1940年に開発された「Harvard Mark Ⅱ」というコンピューターがありました。このコンピューターがある日故障したのですが、その原因がコンピューター内に入り込んだ「虫」でした。

この現象から、プログラムを含むコンピューターの不具合を「バグがある(いる)」と呼ぶようになったと言われています。

デバッグはバグの改善作業

プログラムの不具合を改修することを「デバッグ」といいます。思い通りに動かない部分を特定して、修正することです。

「デバッグ」という用語は、虫をコンピューターから取り除いたことで故障していたコンピューターが直った現象に由来します。

コンピューターの故障の原因である「虫(バグ: bug)」を「取り除く:de(デ:de)」という意味で、これらをつなげて「debug(デバッグ)」と呼ばれるようになりました。

バグとエラーなど似ている言葉の違い

バグに似た用語で「エラー」という言葉があります。

この2つの言葉は似ていますが、異なる意味を持っているのです。混同しがちなので、違いを把握しておきましょう。

ちなみに簡単に表現すると「エラーによってバグ(欠陥)が発生する」というイメージです。

じつはシステムや機器の不具合は、エラーとバグを含め4つに区別できます。

ただし、開発現場や企業の文化によって明確に分かれていない場合もあるので基礎知識として理解し、現場では言葉の認識を合わせるようにしましょう。

エラー:人間の判断の誤り

エラーは日本語で「誤り・間違い」という意味を持ちます。システム開発でのエラーは主に、「人間が犯す判断の誤り」のことです。

システムを設計する段階で考慮が漏れていたり、プログラムの動作の想定が誤っていたりすると、実際にプログラミングをしてもエラーとなります。

例えば、建物を人間が設計する段階で、モノを支えるための柱の大きさや高さを誤っていると、崩壊につながりますよね。

このように、人間の判断が誤っていたために起こる不具合をエラーと呼びます。

欠陥(バグ):システム内のコードなどの不備

機能の欠陥のことを「バグ」と表現します。

例えば、システム設計の段階でエラーがあると、実際にプログラミングしたコードに欠陥(バグ)が生じるのです。

人間が判断を誤った段階でエラーが発生しており、それをもとにコーディングしたシステムに欠陥(バグ)が発生します。

つまり、エラーが欠陥(バグ)を生むということです。

障害:実行結果と期待する結果が一致しない

エラーや欠陥(バグ)の他にも、区別される不具合があります。その1つが障害です。

障害とは、期待する動作や実行結果と一致しない不備の原因です。障害の原因はさまざまで、それはエラーやバグ、あるいは電力などによる誤動作かもしれません。

つまり、システムが正常に動かない「何らかの原因」を障害と呼びます。

故障:システムが使えない

故障は、システムが使えない状態を指します。つまり、システムが全く機能を発揮しないということです。

その原因は、機器の消耗やシステムの欠陥(バグ)などさまざまですが、「システムが使えない状態」に陥ったとき故障と判断されます。

無料キャリア相談!本日も予約受付中

テックキャンプは、未経験からのエンジニア・WEBデザイナー転職を実現するスクール。教室でもオンラインでも学習が可能です。

テックキャンプには「徹底したサポート」と「やりきらせる学習環境」があるので、転職成功率は99%(※)実際に受講した人の体験談はこちらから

今後のキャリアに迷っているなら、一度無料のキャリア相談(カウンセリング)で相談してみませんか?無理な勧誘は一切致しませんので、お気軽にどうぞ。
※2016年9月1日〜2020年12月31日の累計実績。所定の学習および転職活動を履行された方に対する割合

バグの事例

ここからは、分かりやすいバグの事例について紹介します。

ゲームにおけるバグ

ゲームソフトにおいても、バグは存在します。それはパソコンゲームでも家庭用ゲーム機でも同じです。

特に、近年のゲームは3次元の空間を自由に動き回れるものも多いのですが、ゲームの自由度が高いほど、バグは多くなります。

例えば、キャラクターが動けなくなったり、本来移動できない壁をキャラクターが突き抜けてしまったりするなどといった事象は、すべてバグです。

スマートカーのバグ

スマートカーはコンピューター制御によって動きますので、そこで使われるソフトウェアやハードウェアにバグが潜んでいることもあるのです。

例えば、燃料ポンプ制御が動作せず突然エンジンが停止したり、意図せず警告灯が点灯したりといった事例もあります。

スマートカーのバグは、交通事故を起こす可能性があり、人命に直結する危険なものです。

システム処理のパフォーマンスにおけるバグ

システムへのアクセス数が膨大になると、想定を超えた処理が必要となり、システム障害を起こしてしまいます。

アクセス数を想定できなかったというエラーはバグにつながり、大規模なシステム障害を起こす原因にもなるのです。

この場合、システム処理のパフォーマンスを想定できなかったというエラーが、大量のアクセスを処理できないというバグを引き起こします

セキュリティバグ

システムを構築する上で考慮しなければならないのがセキュリティです。

プログラム内では、インターネットを介したデータのやり取りを行いますので、通信機能部分のコードでセキュリティを意識したコーディングは欠かせません。

大手コンピューターメーカーのOSアップデートにて、SSL接続に関するコードにバグがあり、重要データの暗号化に問題がでました。

SSLで守られるはずの個人情報やクレジットカード番号などが、セキュリティ部分のバグで守られていなかったのです。

すぐにソフトウェアアップデートにより改修されましたが、セキュリティに関連するバグはユーザー個人に損害を与える可能性があります。

プログラムにバグはつきもの デバッグを効率的に行うには

大前提として、人間がプログラムを書きますので、最初からバグのないシステムはほとんど存在しません

どれだけチェックをしていても、実運用では必ずバグが発見されます。

ですので、そのようなバグによる不具合をできる限り早く解決するために、効率的なデバッグを行なうことが大切です。

オンラインでも実施中!テックキャンプの無料カウンセリング

こんな不安や疑問はありませんか?
・自分のキャリアでエンジニア転職できるか
・自分はエンジニアに向いているのか
・どうしたら効率良くプログラミングを習得できるか

テックキャンプでは、IT転職・プログラミング学習に特化したプロのカウンセラーが、中立な立場であなたの悩み解決をサポートします。満足度93%(※1)、累計利用者数は40,000人以上!(※2)

無理な勧誘は一切致しませんので、気軽にご参加ください。※1.2018年10月24日〜11月16日(N=106) 2.2016年9月1日から2020年12月31日の累計実績

無料カウンセリングの予約はこちら

未経験からのIT転職を叶えるテックキャンプが、今なら受講料20万円OFF!

コロナの影響で「本当に今仕事を辞めて大丈夫だろうか…」と不安で転職に踏み切れない人も多いです。
テックキャンプの夜間休日スタイルなら、今の仕事を続けながらITエンジニアへの転職を目指せます!

【テックキャンプの特徴】
✓初心者でもわかりやすい教材
✓プロの講師に質問し放題
✓受講生の90%が非IT業界
(※1)、それでも転職成功率は99%!(※2)

迷っているならキャンペーン中の今がチャンスです。※1.2019年7月12日〜2019年8月25日 2.2016年9月1日〜2020年12月31日の累計実績。所定の学習および転職活動を履行された方に対する割合

キャンペーンの詳細はこちら

この記事を書いた人

佐久森
テックライター 佐久森 福岡県出身の東京都在住。ITインフラエンジニア10年以上の経験から、IT技術全般を初心者向けに分かりやすく解説。また、ITエンジニアの働き方に関する情報などを執筆中。

あなたの理想のキャリアに合わせた、テックキャンプの3つのサービス

Advertisement