ホーム > データベーススペシャリスト試験 > 2018年
データベーススペシャリスト試験 2018年 午前2 問25
エクストリームプログラミング(XP: eXtreme Programming)における“テスト駆動開発”の特徴はどれか。
ア:最初のテストで、なるべく多くのバグを摘出する。
イ:テストケースの改善を繰り返す。
ウ:テストでのカバレージを高めることを重視する。
エ:プログラムを書く前にテストケースを作成する。(正解)
解説
エクストリームプログラミング(XP)における“テスト駆動開発”の特徴はどれか【午前2 解説】
要点まとめ
- 結論:テスト駆動開発(TDD)は「プログラムを書く前にテストケースを作成する」ことが特徴です。
- 根拠:XPのTDDは、まず失敗するテストを書くことで設計を明確にし、その後コードを書いてテストをパスさせる反復的手法です。
- 差がつくポイント:テストを後から追加するのではなく、先にテストを書く点が他のテスト手法と大きく異なり、品質向上に直結します。
正解の理由
選択肢エ「プログラムを書く前にテストケースを作成する」が正解です。
XPのテスト駆動開発は「Red-Green-Refactor」のサイクルを回し、まず失敗するテストを書く(Red)、次にそのテストを通すためのコードを書く(Green)、最後にコードを改善する(Refactor)という流れを重視します。これにより設計が明確になり、バグの早期発見と高品質なコードが実現します。
XPのテスト駆動開発は「Red-Green-Refactor」のサイクルを回し、まず失敗するテストを書く(Red)、次にそのテストを通すためのコードを書く(Green)、最後にコードを改善する(Refactor)という流れを重視します。これにより設計が明確になり、バグの早期発見と高品質なコードが実現します。
よくある誤解
テスト駆動開発は単にテストケースを増やすことやカバレッジを高めることではなく、テストを先行させることで設計と実装を同時に進める手法です。
解法ステップ
- XPの基本理念とテスト駆動開発の定義を理解する。
- TDDの特徴として「テストを先に書く」ことを確認する。
- 選択肢を比較し、テストのタイミングに注目する。
- 「プログラムを書く前にテストを書く」ことがTDDの本質であると判断する。
- 正解を選択肢エと確定する。
選択肢別の誤答解説
- ア: 最初のテストで多くのバグを摘出することは重要だが、TDDの特徴ではなく一般的なテストの目的です。
- イ: テストケースの改善は行うが、TDDの本質はテストを先に書くことにあります。
- ウ: カバレッジを高めることは品質向上に役立つが、TDDの特徴ではなくテスト全般の指標です。
- エ: プログラムを書く前にテストケースを作成することがTDDの核心であり、正解です。
補足コラム
テスト駆動開発はXPの中でも特に品質保証と設計改善に効果的なプラクティスです。テストを先に書くことで、コードの目的が明確になり、リファクタリングも安全に行えます。また、TDDは単体テストの自動化と密接に関連し、継続的インテグレーション(CI)との相性も良いです。
FAQ
Q: テスト駆動開発はどのように品質向上に寄与しますか?
A: 先にテストを書くことで設計が明確になり、バグの早期発見とコードの保守性向上につながります。
A: 先にテストを書くことで設計が明確になり、バグの早期発見とコードの保守性向上につながります。
Q: TDDはどのようなサイクルで進めますか?
A: 「Red(失敗するテストを書く)→Green(テストを通すコードを書く)→Refactor(コードを改善)」の3段階を繰り返します。
A: 「Red(失敗するテストを書く)→Green(テストを通すコードを書く)→Refactor(コードを改善)」の3段階を繰り返します。
関連キーワード: テスト駆動開発, XP, Red-Green-Refactor, 単体テスト, 自動テスト, 継続的インテグレーション