問23 テスト駆動開発

情報処理​安全確保​支援士 令和6年度 秋期 午前II、全25問のうちの問23。

出典:令和6年度 秋期 情報処理安全確保支援士試験 午前II 問23

エクストリームプログラミング(XP:Extreme Programming)における“テスト駆動開発”の特徴はどれか。

  1. ア最初のテストで,なるべく多くのバグを摘出する。
  2. イテストケースの改善を繰り返す。
  3. ウテストでのカバレージを高めることを目的とする。
  4. エプログラムコードを書く前にテストコードを書く。
答えと解説を開く

正解はエです。

テスト駆動開発は、まず失敗するテストのコードを書き、次にそのテストが通る最小限のプログラムを書き、最後に動きを変えずにコードを整える (リファクタリング)、を短く繰り返す進め方です。プログラムのコードを書く前にテストのコードを書くのが特徴なので、正解はエです。

ほかの選択肢が違う理由

  • ア最初のテストでバグをたくさん見つけることが目的ではありません。テストは、作る物がどう動くべきかを先に決める役をします。
  • イテストケースの改善を繰り返すことが特徴ではありません。繰り返すのは、テストを書く、通す、整える、の流れです。
  • ウカバレージ (テストが通ったコードの割合) を高めることが目的ではありません。結果として高くなりやすい、というだけです。

仕組み

失敗するテスト (赤)、通す (緑)、整える (リファクタ) の流れを、レッド、グリーン、リファクタと呼びます。テストが先にあるので、整えるときに動きを壊してもすぐ気づけます。

テストを先に書こうとすると、使う側から見た形を先に考えることになります。そのため、使いやすく、テストしやすい設計に自然と寄っていきます。

この問に出る言葉