SC情報処理安全確保支援士試験 午前Ⅱ

令和6年度秋期 情報処理安全確保支援士 午前Ⅱ 問23

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

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

選択肢

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

午前II 問23:TDDは「先にテストを書いてから作る」開発スタイルだよ

テスト駆動開発(TDD)は、料理でいうと「先に味見の基準を決めてから調理する」ような進め方だよ。まず、まだ通らないテストを書いて「こう動けばOK」というゴールをはっきりさせる。そのあと、そのテストを通すために必要な最小限のコードを書いていくんだ。

この問題で問われていること

XPにおけるTDDの基本サイクル、つまり「失敗するテストを書く → テストを通す最小限の実装をする」という流れを理解できているかを確認する問題だよ。

TDD

Red -> Green -> Refactor の順で開発を進める。

先にテスト\n-> 実装\n-> 改善

確認ポイント

  • 目的は最初に多くのバグを摘出することではありません。
  • カバレージ向上だけを直接目的にしない。
  • 先にテストコードを書くを選ぶ。
正解と解説を見る

正解

エ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは間違いだよ。TDDは、最初のテストでバグを大量に見つける作戦ではないよ。泥棒を一気に捕まえる大捜査というより、「この鍵でドアが開くはず」と先に確認条件を作ってから、少しずつ合う鍵を作る進め方なんだ。

選択肢イ

これは間違いだよ。テストケースを何度も改善するのは良いことだけど、XPのテスト駆動開発そのものを表す特徴ではないんだ。料理でいうと、味見の方法を改良する話であって、「先に完成イメージを決めてから作る」というTDDの本筋とは少しズレているよ。

選択肢ウ

これは間違いだよ。カバレージを高めることは、家の中をどれだけ見回ったかを増やすようなもので大事ではあるよ。でもTDDの目的は、見回った場所の割合を増やすこと自体ではなく、先にテストを書いて、必要な動きを少しずつ作って確認することなんだ。

選択肢エ(正解)

これが正解だよ。テスト駆動開発では、先に「こう動いてほしい」というテストコードを書いて、そのテストに通るようにプログラムを書くんだ。たとえるなら、先に採点表を作ってから答案を書く感じだよ。何を満たせばOKかが先に決まるから、迷子になりにくいんだ。

出典:独立行政法人 情報処理推進機構(IPA)令和6年度秋期 情報処理安全確保支援士試験 午前Ⅱ 問23(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針