基本情報技術者試験「ソフトウェアテスト」の問題
プログラム中の変数に着目し、その変数が値を代入される箇所(定義)と参照される箇所(使用)の流れを追跡して、未定義のまま使用される、あるいは定義後に一度も使用されないといった異常を検出することを狙いとするテスト技法はどれか。
アデータフローテスト
イデシジョンテーブルテスト
ウ同値分割
エ原因結果グラフ法
正解
ア.データフローテスト
データフローテストは、変数への代入(定義)と参照(使用)の連鎖を制御フロー上で追跡し、定義せずに使用する(未定義使用)、定義後に使われない(未使用定義)、定義後に再定義され元の値が使われないといった異常パターンを検出する。設問の説明に正確に対応するホワイトボックス系技法である。
?選択肢ごとの解説
ア ○データフローテストは、変数への代入(定義)と参照(使用)の連鎖を制御フロー上で追跡し、定義せずに使用する(未定義使用)、定義後に使われない(未使用定義)、定義後に再定義され元の値が使われないといった異常パターンを検出する。設問の説明に正確に対応するホワイトボックス系技法である。
イ ×デシジョンテーブルテストは条件の組合せを表で整理する手法であり、変数の定義と使用の流れを追う技法ではない。
ウ ×同値分割は入力を同値クラスに分けて代表値でテストする手法で、変数のデータの流れを対象としない。
エ ×原因結果グラフ法は入力条件と出力の論理関係をモデル化する手法で、変数の定義使用の追跡を目的としない。
✎くわしく
データフローテストは制御フローテスト(命令・分岐・条件網羅)と同じくプログラム構造に基づくが、着眼点が『制御の流れ』ではなく『データ(変数)の流れ』である点が特徴である。定義(define)・使用(use)の関係をdef-useペアとして整理し、全定義網羅や全使用網羅などの基準で検証する。未初期化変数の参照など、制御フロー網羅だけでは見落としやすい欠陥の発見に有効である。
✓本番での押さえどころ
試験のコツ
『変数の定義と使用』『未定義使用』とあればデータフローテストと判断する。
覚え方
データフロー=データ(変数)の流れ。代入(定義)から参照(使用)までの道を追う、と覚える。
よくある誤り
制御フローテスト(分岐・条件網羅)と混同しやすいが、データフローテストは変数の値の流れに着目する点が決定的に異なる。
開発技術の他の問題
アジャイル開発の手法であるスクラムにおいて、スプリントごとに動作するソフトウェアを開発チームが実際に作り上げ、その成果物をプ…ソフトウェアのテストにおいて、プログラムの内部構造には着目せず、入力に対する出力が仕様どおりであるかを検証する手法を採用した…あるシステムのファンクションポイント(FP)を見積もったところ、未調整FPは200であった。技術的複雑度を表す調整係数が0.…ソフトウェアの企画から開発・運用・保守・廃棄までの各活動について、取得者と供給者が同じ言葉で役割や作業範囲を取り決められるよ…ある開発プロジェクトでは、要件定義・設計・実装・テストの各工程を上流から下流へ順に進め、前工程の成果物を承認してから次工程へ…開発対象を複数の部分に分け、各部分について計画・リスク分析・開発・評価の活動を繰り返し、評価のたびにリスクを見極めながら少し…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0082