平成28年度 秋期 システムアーキテクト試験 午前Ⅱ 問11

エラー埋込み法では,検出したエラー数を測定することによって,その時点での埋込みエラー数を除いた潜在エラー数 TT を推定することができる。
TT を求める次の計算式の変数 AA,BB,CC に対応する項目の適切な組合せはどれか。

総エラー数 = A×BA \times B / CC
TT = 総エラー数 - AA - (BB - CC)

解答・解説

正解: イ. A:埋込みエラー数,B:検出した総エラー数,C:検出した埋込みエラー数

エラー埋込み法は、テスト対象のプログラムに既知のエラー(埋込みエラー)を意図的に埋め込んでからテストを実施し、検出された埋込みエラーの割合と未知の真のエラーの検出割合が等しいと仮定することで、プログラム全体のエラー数を推定する手法です。

計算式の導出と変数の特定

エラー埋込み法では、以下の比例関係が成り立つと仮定します。

検出した埋込みエラー数埋込みエラー数=検出した総エラー数総エラー数\frac{\text{検出した埋込みエラー数}}{\text{埋込みエラー数}} = \frac{\text{検出した総エラー数}}{\text{総エラー数}}

この式を「総エラー数」について解くと、次のようになります。

総エラー数=埋込みエラー数×検出した総エラー数検出した埋込みエラー数\text{総エラー数} = \frac{\text{埋込みエラー数} \times \text{検出した総エラー数}}{\text{検出した埋込みエラー数}}

問題文の1つ目の式「総エラー数 = A×BA \times B / CC」と比較すると、以下の関係が分かります。

  • CC:分母に位置するため、検出した埋込みエラー数 です。
  • AA と BB:分子に位置するため、「埋込みエラー数」と「検出した総エラー数」のいずれかになります。

次に、2つ目の式「TT = 総エラー数 - AA - (BB - CC)」を確認します。
求めたい値 TT は「その時点での埋込みエラー数を除いた潜在エラー数(=まだ検出されていない未知のエラー数)」です。

  • 「総エラー数」から「埋込みエラー数」を引くと、プログラムに最初から存在していた「未知のエラーの総数」になります。
  • 「検出した総エラー数」から「検出した埋込みエラー数(CC)」を引いた値(B−CB - C)は、「検出された未知のエラー数」を表します。
  • したがって、「総エラー数 - 埋込みエラー数 - (検出した総エラー数 - 検出した埋込みエラー数)」を計算することで、未検出の潜在エラー数 TT が求まります。

これより、各変数は以下のように特定できます。

  • AA:埋込みエラー数
  • BB:検出した総エラー数
  • CC:検出した埋込みエラー数

したがって、正解は イ です。

各選択肢の解説

  • ア:BB と CC が逆になっています。分母の CC が「検出した総エラー数」では、正しい総エラー数を推定できません。また、B−CB - C が「検出した埋込みエラー数 - 検出した総エラー数」となり、意味をなさなくなります。
  • イ:正解です。すべての変数が計算式の意味と一致しています。
  • ウ:すべての変数の割り当てが誤っています。分母の CC は「検出した埋込みエラー数」である必要があります。
  • エ:AA と CC が逆になっています。分母の CC に「埋込みエラー数」を置くと比例関係が逆になり、また B−CB - C が「検出した総エラー数 - 埋込みエラー数」となってしまい、検出済みの未知のエラー数を正しく算出できません。

Spineチーム