令和7年度 春期 システムアーキテクト試験 午前II 問7

テクノロジシステム開発技術

この問題は2025(R7)春 システムアーキテクト 午前IIに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

プログラムPをテストケースの集合であるテストセットTでテストし,テスト結果が全て想定結果と一致することを確認した。そのテストセットTに不具合を検出できる十分な能力があるかどうかを評価するために,次の手順でテストを行った。このテストを何と呼ぶか。

〔手順〕

  1. プログラムPのステートメントの1か所に,例えば (a+b>1)(a + b > 1)(a+b>0)(a + b > 0) にするというような,軽微な変更を行ったプログラム P1,P2,P3,,PmP_1, P_2, P_3, \cdots, P_m を作成する。このm個のプログラムの変更内容は,全て異なっている。
  2. テストセットTを用いて全てのプログラム P1,P2,P3,,PmP_1, P_2, P_3, \cdots, P_m をテストする。
  3. P1P_1 から PmP_m までの m個のプログラムのうち,プログラムPと異なるテスト結果となったプログラムの総数をNとし,次式によって,テストセットTの有効性の指標Eを算出する。

E=NmE = \frac{N}{m}

解答・解説を読む

正解: 選択肢

本設問の〔手順〕で示されているのは、意図的にプログラムのソースコードへ軽微な変更(バグ)を混入させた複数のプログラム(これを ミュータント と呼びます)を作成し、既存のテストセットがそのバグをどれだけ検出できるかを評価する手法です。
このように、テストセットの妥当性や網羅性(有効性)を評価するために行うテスト手法を ミューテーションテスト と呼びます。

各選択肢の解説

  • ア 探索的テスト: テストケースを事前に詳細に設計せず、テストを実行しながらシステムの振る舞いを学習し、その知識をもとに次のテストを設計・実行していく手法です。
  • イ ドメイン分析テスト: 複数の入力変数が関係し合う入力領域(ドメイン)を分析し、同値分割や境界値分析といった技法を応用してテストケースを設計する手法です。
  • ウ ミューテーションテスト: 正解です。意図的に欠陥を埋め込んだプログラムを用いて、テストセットの不具合検出能力を測定する手法を指します。
  • エ ユースケーステスト: ユーザーとシステムの相互作用を記述したシナリオ(ユースケース)に基づいてテストケースを作成し、システムが要件を満たしているかを確認する手法です。