最終更新日:2026年8月12日
fe fe-management project-management testing
まず結論
バグ埋込み法とは、既知のバグを意図的にソフトウェアへ埋め込み、そのバグがどれくらい発見されたかを使って、もともと存在していたバグの総数や残存バグ数を推定する方法です。
基本情報技術者試験では、次の関係を使って考えます。
埋込みバグの検出率
=
既存バグの検出率
試験中は、次の順番で解くと安定します。
1. 埋込みバグの検出率を求める
2. 発見済みバグから埋込みバグ分を引く
3. 既存バグの総数を逆算する
4. 未発見の既存バグを求める
5. 未発見の埋込みバグも足す
直感的な説明
ソフトウェアの中に、あらかじめ数が分かっているバグをわざと埋め込んだとします。
例えば、20個のバグを埋め込み、そのうち15個をテストで発見できたなら、テストはおよそ75%のバグを見つけられる能力があると考えます。
埋込みバグ 20個
↓
15個発見
↓
検出率 75%
この検出率が、もともと存在していたバグにも同じように当てはまると仮定します。
つまり、既存バグが30個見つかっていたなら、
既存バグの75% = 30個
と考えて、既存バグの総数を逆算できます。
バグ埋込み法のポイントは、埋め込んだバグそのものが目的ではなく、テストの検出能力を測るための物差しとして使うことです。
定義・仕組み
バグ埋込み法では、次の2種類のバグを区別します。
| 種類 | 意味 |
|---|---|
| 既存バグ | もともとソフトウェアに存在していたバグ |
| 埋込みバグ | 評価のために意図的に追加した既知のバグ |
埋込みバグの総数を S、そのうち発見された数を s とすると、埋込みバグの検出率は次のように考えられます。
検出率 = s / S
既存バグについても同じ検出率になると仮定し、既存バグの発見数を r、既存バグの総数を R とすると、
s / S = r / R
という比例関係から R を推定します。
例
埋込みバグが22個あり、そのうち16個を発見したとします。
検出率
= 16 / 22
= 8 / 11
また、テストで見つかったバグの総数が48個で、そのうち16個が埋込みバグなら、既存バグの発見数は、
48 - 16
= 32個
です。
既存バグの総数を R とすると、
32 / R = 8 / 11
なので、
R = 44
と推定できます。
既存バグ44個のうち、32個はすでに発見済みなので、未発見の既存バグは、
44 - 32
= 12個
です。
さらに、埋込みバグ22個のうち16個しか見つかっていないため、未発見の埋込みバグは、
22 - 16
= 6個
です。
したがって、ソフトウェア内に残っているバグ数は、
12 + 6
= 18個
と推定できます。
関連するテスト管理の考え方として、バグ管理図とは?バグ検出数・未解決バグ数・未消化テスト項目数の読み方もあわせて確認すると、残存バグ数の推定とテスト進捗管理の違いを整理できます。
科目Aでどう出る?
科目Aでは、埋込みバグ数・発見された埋込みバグ数・発見済みバグ数が与えられ、あと何個のバグが残っていると推定できるかを計算させる形が典型です。
試験中の判断手順
① 埋込みバグの検出率を求める
② 発見済み総数から埋込みバグを引く
→ 発見済みの既存バグ数
③ 同じ検出率を既存バグにも適用する
→ 既存バグ総数を逆算
④ 発見済みを引く
→ 未発見の既存バグ
⑤ 未発見の埋込みバグを足す
→ 残存バグ数
数式を暗記しなくてもよい
公式をそのまま覚えるより、次の考え方を理解しておく方が安全です。
埋込みバグで分かった検出率
↓
テスト全体の検出能力とみなす
↓
既存バグにも同じ割合で見つかると考える
↓
総数を逆算する
この流れが分かれば、数値が変わっても対応できます。
どんな場面で使う?
バグ埋込み法は、テストによってどの程度バグを検出できているかを推定し、残存バグ数を見積もりたい場面で使います。
例えば、次のような判断の材料になります。
- テスト終了の判断
- 品質評価
- 追加テストの必要性の検討
- 残存バグ数の推定
ただし、実際にはすべてのバグが同じ確率で発見されるとは限りません。
FE試験では、埋込みバグと既存バグの発見数が比例するという前提で計算することが重要です。
よくある誤解・混同
誤解1:発見された全バグ数をそのまま既存バグとして使う
発見済みバグの中には、意図的に埋め込んだバグも含まれています。
そのため、まず埋込みバグ分を引きます。
発見済み総数
-
発見済み埋込みバグ
=
発見済み既存バグ
誤解2:未発見の既存バグだけを残存バグとする
今回のように、埋込みバグをまだ取り除いていない前提なら、未発見の埋込みバグもソフトウェア内に残っています。
残存バグ
=
未発見の既存バグ
+
未発見の埋込みバグ
ここは科目Aで特にひっかけになりやすいポイントです。
誤解3:埋込みバグ22個のうち16個見つかったので、残り6個が答え
6個は未発見の埋込みバグだけです。
もともと存在していた既存バグにも未発見分があるため、それも加える必要があります。
誤解4:バグ埋込み法はバグ管理図と同じ
異なります。
バグ埋込み法
→ 検出率から残存バグ数を推定
バグ管理図
→ テスト進捗や未解決バグの変化を確認
バグ管理図は、工程の進み具合を見るための管理手法です。
誤解5:ゴンペルツ曲線と同じ
ゴンペルツ曲線は、テストの進行に伴う累積バグ検出数の収束傾向を見る方法です。
一方、バグ埋込み法は、既知のバグの検出率を物差しとして使う点が特徴です。
まとめ(試験直前用)
- バグ埋込み法は、既知のバグを意図的に埋め込み、検出率から残存バグ数を推定する方法
- 基本は「埋込みバグの検出率 = 既存バグの検出率」と考える
- 発見済み総数から、まず発見済み埋込みバグを引く
- 既存バグ総数を検出率から逆算する
- 未発見の既存バグだけでなく、未発見の埋込みバグも残存バグに含める
- 公式暗記より「検出率を物差しにして逆算する」と理解する
埋込みバグで検出率を測り、その割合から本来のバグ数を逆算する。