情報処理安全確保支援士試験 令和6年秋期午前Ⅱ テスト駆動開発
出典:令和6年秋期 午前Ⅱ 問23
分野:ソフトウェア開発管理技術 / 開発プロセス・ 手法
エクストリームプログラミング(XP:Extreme Programming)における"テスト駆動開発"の特徴はどれか。
- ア:最初のテストで,なるべく多くのバグを摘出する。
- イ:テストケースの改善を繰り返す。
- ウ:テストでのカバレージを高めることを重視する。
- エ:プログラムを書く前にテストケースを作成する。
TSUNAGARU-ADVICE
まず押さえたいこと
テスト駆動開発は、プログラムを書いてからテストするのではなく、先にテストケースを作成してから実装する開発の進め方です。
迷ったときの判断軸
テスト駆動開発では、最初に期待する動作をテストとして定義し、そのテストを通すようにコードを書きます。したがって、プログラムを書く前にテストケースを作成すると整理すると判断しやすくなります。
科目Bにつなげるために
科目Bでは、開発手法を名称で覚えるだけでなく、作る前に何を決め、どの順番で開発を進めるのかを問われます。テスト駆動開発は、テスト、実装、リファクタリングを小さく繰り返す考え方として理解しておきましょう。※開発関連試験向け
テスト駆動開発(TDD:Test Driven Development)は、実装するプログラムを書く前に、まずテストケースを作成する開発手法です。
先にテストを書き、そのテストを通るように最小限のコードを実装し、その後リファクタリングを行う流れで開発を進めます。
したがって、エが適切です。
❌他選択肢が誤りの理由ア:最初のテストで,なるべく多くのバグを摘出する。
⇒バグ摘出を主目的にした説明、という点で違います。TDDは、先にテストを書いて設計と実装を進める手法です。
イ:テストケースの改善を繰り返す。
⇒テストケース改善の反復だけを示している点で違います。TDDの特徴は、プログラムを書く前にテストを書くことです。
ウ:テストでのカバレージを高めることを重視する。
⇒カバレージ向上を主目的としている点で違います。TDDではカバレージも結果的に高まりやすいですが、本質はテストを先に作成して実装を進めることです。