応用情報技術者 2022年 秋期 午前2 問49
問題文
エクストリームプログラミング (XP:Extreme Programming) における “テスト駆動開発”の特徴はどれか。
選択肢
ア:最初のテストで、 なるべく多くのバグを摘出する。
イ:テストケースの改善を繰り返す。
ウ:テストでのカバレージを高めることを目的とする。
エ:プログラムを書く前にテストコードを記述する。(正解)
エクストリームプログラミング (XP) における “テスト駆動開発”の特徴【午前2 解説】
要点まとめ
- 結論:テスト駆動開発(TDD)は「プログラムを書く前にテストコードを記述する」手法です。
- 根拠:XPのTDDは、まず失敗するテストを書き、その後にコードを実装しテストを通すサイクルを繰り返します。
- 差がつくポイント:テストを後付けするのではなく、テストコードを先に書くことで設計の品質向上とバグの早期発見を実現します。
正解の理由
選択肢エ「プログラムを書く前にテストコードを記述する」は、TDDの本質を正確に表しています。TDDでは、まず失敗するテストケースを作成し、そのテストをパスさせるために最小限のコードを書きます。このサイクルを繰り返すことで、コードの品質と保守性が高まります。
よくある誤解
テスト駆動開発は「テストをたくさん書くこと」や「バグを最初に全部見つけること」ではありません。テストコードを先に書くことが重要です。
解法ステップ
- 問題文の「テスト駆動開発」の定義を確認する。
- 各選択肢がTDDの特徴に合致しているか検討する。
- 「プログラムを書く前にテストコードを書く」という特徴がTDDの核心であることを理解する。
- 選択肢エを正解と判断する。
選択肢別の誤答解説
- ア: 「最初のテストで多くのバグを摘出する」はTDDの目的ではなく、単なるテストの効果を誤解しています。
- イ: 「テストケースの改善を繰り返す」はリファクタリングやテストのメンテナンスに近いが、TDDの特徴とは異なります。
- ウ: 「テストでのカバレージを高めること」は望ましいが、TDDの直接的な特徴ではありません。
- エ: 「プログラムを書く前にテストコードを記述する」はTDDの本質を正しく表しています。
補足コラム
テスト駆動開発はXPのプラクティスの一つで、設計の品質向上やバグの早期発見に寄与します。TDDは「Red-Green-Refactor」のサイクルで進められ、まず失敗するテスト(Red)、次にテストを通すコードを書く(Green)、最後にコードを改善する(Refactor)という流れが特徴です。
FAQ
Q: テスト駆動開発はどのようにコードの品質を高めるのですか?
A: 先にテストを書くことで設計を明確にし、バグを早期に発見できるため、品質が向上します。
A: 先にテストを書くことで設計を明確にし、バグを早期に発見できるため、品質が向上します。
Q: TDDと単なるテストの違いは何ですか?
A: TDDはテストコードを先に書き、そのテストを通すためにコードを書く開発手法であり、単なるテストは後から行うことが多いです。
A: TDDはテストコードを先に書き、そのテストを通すためにコードを書く開発手法であり、単なるテストは後から行うことが多いです。
関連キーワード: テスト駆動開発、エクストリームプログラミング、Red-Green-Refactor, ソフトウェア品質、バグ早期発見

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

