応用情報技術者 2016年 春期 午前2 問50
問題文
エクストリームプログラミング (XP:eXtreme Programming)における“テスト駆動開発”の説明はどれか。
選択肢
ア:最初のテストでバグを抽出すること
イ:テストケースを順次改善すること
ウ:テストでのカバレージを優先すること
エ:プログラムを書く前にテストケースを作成すること(正解)
エクストリームプログラミング (XP)における“テスト駆動開発”の説明【午前2 解説】
要点まとめ
- 結論:テスト駆動開発(TDD)は「プログラムを書く前にテストケースを作成する」手法です。
- 根拠:XPの基本原則で、コードの品質向上と設計の明確化を目的にテストファーストで進めます。
- 差がつくポイント:テストを後から書くのではなく、先にテストを書くことがTDDの本質であり、誤解しやすい点です。
正解の理由
選択肢エ「プログラムを書く前にテストケースを作成すること」が正解です。
TDDは「Red-Green-Refactor」のサイクルで進め、まず失敗するテスト(Red)を作成し、そのテストを通すためのコードを書く(Green)、最後にリファクタリングする(Refactor)という流れです。これにより、コードの品質を保ちながら開発を進められます。
TDDは「Red-Green-Refactor」のサイクルで進め、まず失敗するテスト(Red)を作成し、そのテストを通すためのコードを書く(Green)、最後にリファクタリングする(Refactor)という流れです。これにより、コードの品質を保ちながら開発を進められます。
よくある誤解
テスト駆動開発は「テストを後から書く」や「バグを見つけるための最初のテスト」と誤解されがちですが、実際はテストを先に設計し、仕様を明確にする手法です。
解法ステップ
- 問題文の「テスト駆動開発」の定義を確認する。
- XPの開発手法の特徴を思い出す。
- 各選択肢がTDDの特徴に合致するか検証する。
- 「プログラムを書く前にテストを書く」ことがTDDの核心であると判断する。
- 正解を選択肢エと確定する。
選択肢別の誤答解説
- ア: 「最初のテストでバグを抽出すること」はTDDの目的の一部ではあるが、テストを先に書くことが本質でないため誤り。
- イ: 「テストケースを順次改善すること」はテストのメンテナンスに関する話で、TDDの定義とは異なる。
- ウ: 「テストでのカバレージを優先すること」は品質指標の一つだが、TDDの説明としては不十分で誤り。
- エ: 「プログラムを書く前にテストケースを作成すること」がTDDの正しい説明。
補足コラム
テスト駆動開発はXPの中核的プラクティスであり、コードの品質向上だけでなく、設計の改善やドキュメント代わりにもなります。テストファーストの考え方はアジャイル開発全般で広く採用されています。
FAQ
Q: テスト駆動開発はどのようなメリットがありますか?
A: バグの早期発見、設計の明確化、リファクタリングの安全性向上などが挙げられます。
A: バグの早期発見、設計の明確化、リファクタリングの安全性向上などが挙げられます。
Q: TDDと単体テストは同じですか?
A: 単体テストはテストの種類ですが、TDDはテストを先に書く開発手法であり、単体テストを含むことが多いです。
A: 単体テストはテストの種類ですが、TDDはテストを先に書く開発手法であり、単体テストを含むことが多いです。
関連キーワード: テスト駆動開発、エクストリームプログラミング、XP, Red-Green-Refactor, アジャイル開発

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

