Bug / Defect / Issue / Error の違いとは(2026)

Bug は defect の口語であり、defect は「ソフトウェアが要求を満たしていない」状態を指す正式な用語です。Issue はそれを含む上位概念で、不具合・機能要望・タスク・質問をまとめて扱います。 実務的には同じものを、儀式の度合いだけ変えて呼んでいるだけです。混乱を生むのは、ひとつのチーム内で3つを混ぜて使うことです。 違いが効くのは会話ではなく3か所です。何を測定するか、契約で何を約束するか、報告者に何を書かせるか。 この記事では、用語集に書いて議論を終わらせられる分け方を示します。

短い答え

用語 範囲 よく見る場所
Bug defect の口語。以前は動いていた、あるいは明らかに動くべき箇所 朝会、チャット、「決済にバグがある」
Defect(不具合) 正式用語。実際の動作と期待動作のあらゆるズレ(以前動いていたかは問わない) QA レポート、監査、契約、指標
Issue 上位概念。判断が必要なすべて——不具合、機能要望、タスク、質問 トラッカーの起票、リリースノート
Error 人が起こした、誤った結果につながる行為 原因分析、ポストモーテム
Fault 失敗を引き起こす、ソフトウェア内の誤った命令やデータ エンジニアリングの議論、規格
Failure 観測できる事象。システムが果たすべきことを果たさない インシデントレビュー、監視
一行だけ覚えるなら:error → fault → failure は因果の連鎖で、defect はあなたが記録するもの(多くは fault)。Bug は口に出して言う言葉です。

連鎖:Error / Fault / Failure

規格でも使われ、ポストモーテムでも有用な古典的モデルです。
  • Error — 人が間違える。要求の誤解、誤った前提、確認の省略。
  • Fault — その誤りがコード・設定・データの中の具体的な欠陥になる。
  • Failure — 条件が揃って fault が実行され、ユーザーに見える形で現れる。画面が壊れる、金額が違う、保存が静かに失敗する。
  • この連鎖があるからこそ「人的ミス」は単独では根本原因になりません。不具合の発生は説明できても、なぜ本番に出たかは説明しないからです。分類と優先度付けの QA 視点は不具合トリアージのガイドを参照してください。

    トラッカーでは「Issue」と呼ぶほうが良い理由

    トラッカーに入るのは不具合だけではありません。対象を issue と呼べば(bug は日常語として残す)、次のすべてを1か所に置けます。
    • defect:動作が誤っている
    • feature request:動作が意図的に欠けている
    • task:動作を伴わない作業
    • question:コード変更を伴わない疑問
    罠は「bug しか型がない」トラッカーです。チームは队列に並べるために要望を bug として起票し、不具合の指標が恒久的に汚染されます。品質が改善しているのか、ラベルを貼り替えただけなのか、判別できなくなります。 ツールを選ぶ段階なら、Issue Tracking System の選定ガイドがより外側の基準を扱っています。QA のライフサイクルだけを見るなら不具合管理ソフトの比較へ。

    区別がお金になる3つの場面

    1. 契約と SLA。「重大な不具合は24時間で修正」と約束する契約には、defect と critical の文書定義が要ります。なければ毎回の議論が交渉になります。契約に「bug」と書くと、たいてい執行できません。 2. 指標。 不具合密度、流出率、再オープン率は、母集団が安定しているときだけ意味を持ちます。「bug」の半分が要望なら、どの数字も成立しません。 3. 監査とコンプライアンス。 規制産業では、深刻度・検証・クローズ根拠を備えた追跡可能な不具合記録が求められます。これは正式な成果物であり、defect という語自体がその正式さを示します。

    Bug か機能要望か

    最も議論になる境界線です。
    不具合である条件 要望である条件
    動作が文書化された要求や確定した設計と矛盾する 要求が存在せず、その動作は一度も約束されていない
    以前できていた作業をユーザーが完了できなくなった 完了はできるが、好む方法ではない
    システム状態が不整合になる、またはデータが失われる システムは整合しており、出力が単に望みと違う
    アクセシビリティ、セキュリティ、データ整合性に関わる レイアウト、文言、フローの好み
    難しいのは「慣習的に期待される」ものです。無効化されたボタンが何の反応も返さないのは、要求に書かれていなくても多くのデザインシステムでは不具合です。こうした境界は文書のルールで決めてください。さもないと毎スプリント蒸し返します。

    Bug か「エラー表示」か

    画面に出るエラーメッセージ自体は不具合ではありません。「メール形式が不正です」は正しい動作です。不具合は、メッセージの内容が誤っている・出るべきときに出ない・出るべきでないときに出す場合です。また「Console error」の error は実行時が記録した例外で、不具合のこともあれば、想定内で処理済みのこともあります。だからこそ報告には Console の出力をテキストで添付すべきです。スクリーンショットでは、トリアージに必要な文言・スタック・発生頻度が伝わりません。

    語彙をひとつ選び、書き残す

    多くのチームが運用できる落としどころです。
    • Issue をトラッカーの対象にする。すべての型はその下に置く。
    • Defect を「動作が誤っている」型とし、指標・契約・レポートで使う語にする。
    • Bug は口語として残す。ダッシュボードには載せない。
    • Error / Fault / Failure は原因分析の中だけで、この順に使う。
    これを QA ドキュメントの5行の用語集に書き、上の「不具合 vs 要望」の判定ルールも添えます。目的は言葉の潔癖ではなく、語彙が安定して初めてレポートは再利用でき、指標は月をまたいで比較できるからです。

    レポートへの影響

    呼び方が何であれ、トリアージに必要な項目は同じです。
    • 正確なページまたはエンドポイント
    • 何をして、何を期待し、実際どうなったか
    • 証拠:スクリーンショット、Console エラー、失敗したリクエスト
    • 環境:ブラウザ、OS、ビューポート、タイムスタンプ
    これが「2分で分類できる報告」と「15分の尋問」の差です。項目ごとの書き方はバグレポートのフォーマット、検索可能な1行目の作り方はタイトル例を参照してください。

    FAQ

    Bug と defect は同じものですか? 日常的には同じです。厳密には defect が「期待動作からのズレ」の定義で、bug はその口語名です。契約や監査は定義のある defect を使い、チームは短い bug を使います。 Defect と failure は同じですか? いいえ。defect はソフトウェア内に存在する欠陥、failure は条件が揃って実行されたときに観測される事象です。defect は何年もコード内にあって一度も failure を起こさないことがあります。 トラッカーは bug と issue のどちらにすべき? 対象は issue、その中の型として defect。型が「bug」しかないトラッカーは要望を不具合队列に押し込み、品質指標を壊します。 Error はどこに置きますか? error は fault を持ち込む人の行為で、原因であってチケットの分類ではありません。「人的ミス」を根本原因にすると、分析が一歩早く止まります。 ツールで強制すべきですか? 軽くで十分です。「型」の必須項目と、不具合と要望の文書ルールがあれば足ります。それ以上の分類は、たいてい間違った対象をより丁寧に記録するだけです。