エラー埋込み法

読み:えらーうめこみほう / 英語表記:error seeding

既知の誤りをプログラムへ意図的に埋め込み、テストで見つかった割合から、もともと存在した潜在エラー数を推定する方法。埋め込んだ誤りと元の誤りの発見されやすさが同程度であることを前提とする。

イマシルちゃんの解説

テストで誤りが見つからなくなっても、プログラムにまだ残っていないとは言い切れないよ。
エラー埋込み法は、わざと加えた誤りがどれだけ見つかったかを手掛かりに、元からある誤りの数を推定する方法なんだ。
まず追加した個数を記録して、テスト担当者には場所を知らせずに調べてもらうよ。
追加分と元からあった分を分けて数え、追加分のうち見つかった割合を元の誤りにも当てはめるの。
ただし、追加分だけが簡単に見つかるようでは推定がずれてしまうよ。
品質を判断するための目安であって、誤りが全部なくなったという保証にはならないんだ。

より深い解説

推定の考え方

もともとの誤りの総数は直接分からない。一方、人が追加した誤りは、総数もテストで発見した数も記録できる。両者の発見率が同じと仮定して、未知の総数を比例関係から求める。

記号意味
S意図的に埋め込んだ誤りの総数
mそのうちテストで発見した数
dテストで発見した、もともとの誤りの数
Tテスト開始前からあった潜在エラー数
埋め込んだ誤りの発見率 = m ÷ S
もともとの誤りの発見率 = d ÷ T
m ÷ S ≒ d ÷ T
T ≒ S × d ÷ m

現実には推定なので、結果が真の総数と必ず一致するわけではない。計算問題では、この比例関係が成立するという前提で求める。

発見した総数との関係

テストで発見した全誤りの数をnとすると、その中には埋め込んだものも含まれる。もともとの誤りだけを数えるにはn − mを使う。

d = n − m
T ≒ S ×(n − m)÷ m

nをそのまま発見済みの元の誤りの数として代入すると、人為的に追加した分まで元の誤りとみなしてしまい、推定値が大きくなる。

独自の数値例

あるテストで誤りを40個埋め込み、そのうち10個を発見したとする。同時に、もともとの誤りを15個発見した。

計算対象計算推定結果
埋込み分の発見率10 ÷ 4025%
開始前からあった総数40 × 15 ÷ 1060個
元の誤りの残り推定した総数 − 発見した元の誤り45個

開始前の総数と、テスト後の残存エラー数は区別する。残りを問われた場合、推定したTから発見済みの元の誤りの数を引く。埋込み分の未発見数を混ぜない。

推定が外れる条件

条件問題になる理由
埋込み分だけ簡単に見つかる元の誤りも見つけやすいと誤って評価する
特定の処理にだけ埋め込むテスト対象全体を代表しない
テスト担当者が埋込み位置を知っている通常の発見過程から偏る
mが0この式では総数を求められない

推定の信頼性は、発見されやすさの仮定に強く依存する。追加した誤り同士が干渉する場合や、修正時に新しい誤りを作る場合にも、単純な比例モデルでは扱い切れない。

実施後の管理

埋め込んだ誤りは識別できるように管理し、検証後には除去する。推定用の変更が製品へ残らないようにする必要がある。数式による推定だけで品質を断定せず、テスト範囲や未解決の不具合と合わせて判断する。

実際の試験ではここに出る!全1問

ネットワークスペシャリスト

午前Ⅱ
↑