プロジェクトマネージャ 2018年 午前2 問17
問題文
エクストリームプログラミング(XP: eXtreme Programming)における“テスト駆動開発”の特徴はどれか。
選択肢
ア:最初のテストで、なるべく多くのバグを摘出する。
イ:テストケースの改善を繰り返す。
ウ:テストでのカバレージを高めることを重視する。
エ:プログラムを書く前にテストケースを作成する。(正解)
🔒 解説は解答すると表示されます
テスト駆動開発【午前2解説】
正解の理由
テスト駆動開発(TDD)は、プログラムを書く前に、そのプログラムが満たすべきテストケースを作成する開発手法です。テストを実行して失敗することを確認してから、テストに合格する最小限のプログラムを書きます。
この特徴を示しているのは、エです。テストケースを先に用意することで、実装すべき内容が明確になり、必要な機能を満たしているかを確認しながら開発できます。
解法ステップ
- 設問のキーワード「テスト駆動開発」に注目します。
- TDDでは、実装より先にテストを作成することを思い出します。
- 「プログラムを書く前にテストケースを作成する」と述べたエを選びます。
TDDの基本的な流れは、次のとおりです。
- 失敗するテストを書く
- テストに合格する最小限のコードを書く
- コードを整理する
- 次のテストに進む
この流れは「レッド・グリーン・リファクタリング」と呼ばれます。
選択肢別の誤答解説
-
ア:最初のテストで、なるべく多くのバグを摘出する。
テストでバグを見つけることは重要ですが、TDDの特徴は、最初のテストで多くのバグを摘出することではありません。実装前にテストを作成し、テストと実装を小さな単位で繰り返す点がポイントです。 -
イ:テストケースの改善を繰り返す。
テストケースを見直すことはありますが、それだけではTDDの特徴を表していません。TDDでは、テストケースを先に作成し、それを基準に実装を進めます。 -
ウ:テストでのカバレージを高めることを重視する。
カバレージ(テストで実行されたコードの割合)を高めることは、テストの網羅性を考えるうえで役立ちます。しかし、カバレージの高さそのものがTDDの定義ではありません。 -
エ:プログラムを書く前にテストケースを作成する。
テストを先に書き、そのテストを満たすようにプログラムを作成するというTDDの基本を示しています。
よくある誤解
-
テストを先に作れば、必ずバグがなくなるわけではありません。
テストケースに含まれない状況や、テスト自体の不備は見逃される可能性があります。 -
TDDは、開発の最後にまとめてテストする手法ではありません。
テストと実装を小さな単位で繰り返し、開発の早い段階から動作を確認します。 -
カバレージを高めることと、TDDを行うことは同じではありません。
TDDはテストを先に作成する開発プロセスであり、カバレージはテストの実行範囲を測る指標です。
補足コラム
XP(エクストリームプログラミング)は、短いサイクルで開発と改善を繰り返すアジャイル開発手法です。TDDのほか、ペアプログラミングや継続的インテグレーションなどもXPで重視されます。
FAQ
Q. テストケースは、すべての機能について一度に作成するのですか?
A. いいえ。通常は小さな機能や振る舞いごとにテストを作成し、対応する実装を進めます。
A. いいえ。通常は小さな機能や振る舞いごとにテストを作成し、対応する実装を進めます。
Q. テストが先に失敗するのは、問題ではないのですか?
A. TDDでは、実装前のテストは期待どおりに失敗します。その失敗によって、まだ必要な機能が実装されていないことを確認します。
A. TDDでは、実装前のテストは期待どおりに失敗します。その失敗によって、まだ必要な機能が実装されていないことを確認します。
関連キーワード: テスト駆動開発、XP、レッド・グリーン・リファクタリング、単体テスト、テストカバレージ

\ せっかくなら /
プロジェクトマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

