基本情報技術者試験「開発プロセス手法」の問題
テスト駆動開発(TDD)における基本的な開発サイクルの順序として最も適切なものはどれか。
ア設計書を完成させてから全テストを後でまとめて作成し実行する
イ実装を全機能分まとめて仕上げてしまってから最後にテストコードを書いて一括検証する
ウ失敗するテストを先に書き、通す最小実装をしてから整理する
エテストは書かず動作確認を手作業で繰り返して品質を保つ
正解
ウ.失敗するテストを先に書き、通す最小実装をしてから整理する
テスト駆動開発は、まず期待動作を表す失敗するテスト(レッド)を書き、それを通過させる最小限の実装(グリーン)を行い、続いて重複除去など内部構造の改善(リファクタリング)を行う小さなサイクルを繰り返す。設問の順序がこのレッド・グリーン・リファクタに正確に一致する。
?選択肢ごとの解説
ア ×設計書完成後にテストを後でまとめて作る進め方は従来型に近く、テストを先行させて実装を導くTDDの本質とは順序が逆である。
イ ×全機能を実装してから最後にテストを書くのは事後テストであり、テストが実装をリードするTDDの考え方に反する。
ウ ○テスト駆動開発は、まず期待動作を表す失敗するテスト(レッド)を書き、それを通過させる最小限の実装(グリーン)を行い、続いて重複除去など内部構造の改善(リファクタリング)を行う小さなサイクルを繰り返す。設問の順序がこのレッド・グリーン・リファクタに正確に一致する。
エ ×テストを書かず手作業の動作確認に頼る方法は自動テストを前提とするTDDと相いれず、回帰確認も困難になる。
✎くわしく
TDDの核心はテストを設計の駆動力にする点にある。失敗するテストを先に書くことで仕様を具体化し、最小実装で過剰設計を避け、リファクタリングで品質を保つ。この小刻みなサイクルは欠陥の早期発見と回帰テスト資産の蓄積につながる。XPのプラクティスとして継続的インテグレーションと組み合わせると効果が高い。
✓本番での押さえどころ
試験のコツ
『失敗するテストを先に』『最小実装』『リファクタリング』の三段が揃えばTDDと判断する。
覚え方
レッド(失敗)→グリーン(成功)→リファクタ(改善)の信号機の色順でサイクルを覚える。
よくある誤り
テストを最後に書く事後テストとTDDを混同しやすい。TDDは『テストが先』という順序が決定的に異なる。
開発技術の他の問題
アジャイル開発の手法であるスクラムにおいて、スプリントごとに動作するソフトウェアを開発チームが実際に作り上げ、その成果物をプ…ソフトウェアのテストにおいて、プログラムの内部構造には着目せず、入力に対する出力が仕様どおりであるかを検証する手法を採用した…あるシステムのファンクションポイント(FP)を見積もったところ、未調整FPは200であった。技術的複雑度を表す調整係数が0.…ソフトウェアの企画から開発・運用・保守・廃棄までの各活動について、取得者と供給者が同じ言葉で役割や作業範囲を取り決められるよ…ある開発プロジェクトでは、要件定義・設計・実装・テストの各工程を上流から下流へ順に進め、前工程の成果物を承認してから次工程へ…開発対象を複数の部分に分け、各部分について計画・リスク分析・開発・評価の活動を繰り返し、評価のたびにリスクを見極めながら少し…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-a2-0099