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

平成30年度春期 情報処理安全確保支援士 午前Ⅱ 問23

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

問題

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

選択肢

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

午前II 問23:TDDは「先にテスト、あとで実装」の流れを押さえよう

TDD(テスト駆動開発)では、まず「まだ通らないテスト」を先に書くんだよ。料理でいうと、先に味見の基準を決めてから、その味になるように少しずつ作るイメージだね。その後、テストに通る最小限のプログラムを書いて、必要に応じて整理していく。このサイクルを回すのがポイントで、最初からテスト網羅率を最大にしよう、という話ではないよ。

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

XPにおけるTDDの基本手順、つまり「失敗するテストを書く → 最小限の実装をする → 改善する」という順番を理解しているかが問われているよ。

Test-Driven Development

in test-driven development、 test cases are written before the production code

write test first\nthen implement code\niterate repeatedly

確認ポイント

  • テスト先行を押さえる。
  • XP/TDD の基本サイクルで考える。
  • 単なるテスト改善活動ではありません。
正解と解説を見る

正解

エ

出典

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

選択肢ア

これは不正解だよ。最初のテストでバグを大量に見つけることが目的ではないんだ。泥棒を一気に捕まえる大捜査というより、「この窓口ではこの書類が通ればOK」と先に合格条件を決めて、その条件を満たすように少しずつ作るのがテスト駆動開発だよ。

選択肢イ

これは不正解だよ。テストケースを直しながら良くしていくこと自体は悪くないけど、テスト駆動開発の決め手ではないんだ。料理で言うと、味見を何度も改善する話であって、「先に完成イメージのチェックリストを作ってから料理する」というTDDの特徴とは少しズレているよ。

選択肢ウ

これは不正解だよ。カバレージを高めるのは、部屋のすみずみまで掃除機をかけた割合を上げるようなもので、テストでは大事な考え方。でもテスト駆動開発の一番の特徴はそこじゃなくて、「作る前に、できたか確認するテストを先に用意する」ことなんだ。

選択肢エ(正解)

これは正解だよ。テスト駆動開発は、プログラムを書く前に「こう動いたら合格」というテストを先に作るやり方なんだ。たとえば合鍵を作る前に、先に鍵穴の形を確認しておいて、その鍵穴に合うように鍵を削るイメージだよ。

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

関連する過去問一覧

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