開発技術

基本情報技術者試験ソフトウェアテスト」の問題

マネジメント系開発技術難易度:normal
プログラム中の変数に着目し、その変数が値を代入される箇所(定義)と参照される箇所(使用)の流れを追跡して、未定義のまま使用される、あるいは定義後に一度も使用されないといった異常を検出することを狙いとするテスト技法はどれか。
データフローテスト
デシジョンテーブルテスト
同値分割
原因結果グラフ法
正解
データフローテスト

データフローテストは、変数への代入(定義)と参照(使用)の連鎖を制御フロー上で追跡し、定義せずに使用する(未定義使用)、定義後に使われない(未使用定義)、定義後に再定義され元の値が使われないといった異常パターンを検出する。設問の説明に正確に対応するホワイトボックス系技法である。

?選択肢ごとの解説

ア ○データフローテストは、変数への代入(定義)と参照(使用)の連鎖を制御フロー上で追跡し、定義せずに使用する(未定義使用)、定義後に使われない(未使用定義)、定義後に再定義され元の値が使われないといった異常パターンを検出する。設問の説明に正確に対応するホワイトボックス系技法である。
イ ×デシジョンテーブルテストは条件の組合せを表で整理する手法であり、変数の定義と使用の流れを追う技法ではない。
ウ ×同値分割は入力を同値クラスに分けて代表値でテストする手法で、変数のデータの流れを対象としない。
エ ×原因結果グラフ法は入力条件と出力の論理関係をモデル化する手法で、変数の定義使用の追跡を目的としない。

くわしく

データフローテストは制御フローテスト(命令・分岐・条件網羅)と同じくプログラム構造に基づくが、着眼点が『制御の流れ』ではなく『データ(変数)の流れ』である点が特徴である。定義(define)・使用(use)の関係をdef-useペアとして整理し、全定義網羅や全使用網羅などの基準で検証する。未初期化変数の参照など、制御フロー網羅だけでは見落としやすい欠陥の発見に有効である。

本番での押さえどころ

試験のコツ

『変数の定義と使用』『未定義使用』とあればデータフローテストと判断する。

覚え方

データフロー=データ(変数)の流れ。代入(定義)から参照(使用)までの道を追う、と覚える。

よくある誤り

制御フローテスト(分岐・条件網羅)と混同しやすいが、データフローテストは変数の値の流れに着目する点が決定的に異なる。

開発技術の他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0082

【基本情報技術者試験】ソフトウェアテストの問題 — 解答・解説|ukamiru 過去問