ホーム > 情報処理安全確保支援士試験 > 2018年 春期
情報処理安全確保支援士試験 2018年 春期 午前2 問23
エクストリームプログラミング (XP: eXtreme Programming) における“テスト駆動開発”の特徴はどれか。
ア:最初のテストで, なるべく多くのバグを摘出する。
イ:テストケースの改善を繰り返す。
ウ:テストでのカバレージを高めることを重視する。
エ:プログラムを書く前にテストケースを作成する。(正解)
解説
エクストリームプログラミング (XP) における“テスト駆動開発”の特徴はどれか【午前2 解説】
要点まとめ
- 結論:テスト駆動開発(TDD)はプログラムを書く前にテストケースを作成する手法です。
- 根拠:XPのTDDは「失敗するテストを書く→コードを書く→テストを通す」サイクルを繰り返し品質を高めます。
- 差がつくポイント:テストを後付けするのではなく、先にテストを書く点が他のテスト手法と明確に異なります。
正解の理由
テスト駆動開発(TDD)は、まず失敗するテストケースを作成し、そのテストを通すための最小限のコードを書くというサイクルを繰り返します。これにより、コードの設計がテスト可能な形で自然に整い、バグの早期発見やリファクタリングの安全性が向上します。選択肢エ「プログラムを書く前にテストケースを作成する」はこのTDDの本質を正確に表しています。
よくある誤解
テスト駆動開発は「テストをたくさん書くこと」や「テストカバレッジを高めること」ではなく、テストを先に書くことで設計と品質を高める開発手法です。
解法ステップ
- 問題文の「テスト駆動開発(TDD)」の定義を確認する。
- TDDの基本的な流れ(テストを書く→コードを書く→リファクタリング)を思い出す。
- 選択肢の内容がTDDの流れに合致しているかを検証する。
- 「プログラムを書く前にテストケースを作成する」がTDDの特徴であることを確認し、正解を選ぶ。
選択肢別の誤答解説
- ア: 最初のテストで多くのバグを摘出するのは望ましいが、TDDの特徴ではなく一般的なテストの目標です。
- イ: テストケースの改善は重要ですが、TDDの本質はテストを先に書くことにあります。
- ウ: テストカバレッジを高めることは品質向上に役立ちますが、TDDの直接的な特徴ではありません。
- エ: プログラムを書く前にテストケースを作成することがTDDの核心であり正解です。
補足コラム
テスト駆動開発はXPのプラクティスの一つで、コードの品質向上だけでなく、設計の改善やドキュメント代わりにもなります。TDDを実践することで、変更に強い柔軟なコードを書くことが可能になります。
FAQ
Q: テスト駆動開発はどのように品質向上に寄与しますか?
A: 先にテストを書くことでバグを早期に発見し、リファクタリング時の安全性が高まります。
A: 先にテストを書くことでバグを早期に発見し、リファクタリング時の安全性が高まります。
Q: TDDと単体テストの違いは何ですか?
A: 単体テストはコード完成後に行うことが多いのに対し、TDDはテストを先に書いてからコードを書く開発手法です。
A: 単体テストはコード完成後に行うことが多いのに対し、TDDはテストを先に書いてからコードを書く開発手法です。
関連キーワード: テスト駆動開発, XP, eXtreme Programming, TDD, ソフトウェア開発手法, リファクタリング, 単体テスト