SC情報処理安全確保支援士試験 午前Ⅱ
令和3年度春期 情報処理安全確保支援士 午前Ⅱ 問23
問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。
問題
選択肢
- ア最初のテストで、 なるべく多くのバグを摘出する。
- イテストケースの改善を繰り返す。
- ウテストでのカバレージを高めることを目的とする。
- エプログラムを書く前にテストコードを記述する。
解き方のヒントを見る
午前II 問23:テスト駆動開発は「先にテストを書く」開発スタイルだよ
テスト駆動開発(TDD)は、料理でいうと「完成形の味見チェックリスト」を先に作ってから調理するようなものだよ。まず期待する動作をテストコードとして書き、そのテストに合格するための最小限の実装を行う。この流れを小さく何度も繰り返して、動くことを確かめながら開発を進めていくんだ。
この問題で問われていること
この問題では、テスト駆動開発のポイントが「実装してからテストを書く」のではなく、「実装する前に、期待する動作を表すテストを先に書くこと」だと理解できているかを確認しているよ。
TDD の流れ
Red -> Green -> Refactor の流れで、小さく失敗させてから実装し、最後に整理する。
先にテスト\n-> 実装\n-> リファクタ
確認ポイント
- 最初に多くのバグを摘出すること自体が主目的ではありません。
- 単にカバレッジを高める活動とも違う。
- プログラムを書く前にテストコードを記述するを選ぶ。
正解と解説を見る
正解
エ
出典
問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。
選択肢ア
これは間違いだよ。TDDの最初の目的は、最初のテストで一気に大量のバグを見つけることではないよ。小さな合格条件を先に決めて、少しずつ作って確認する進め方なんだ。泥棒を一網打尽にする大捜査というより、ドアの鍵、窓の鍵、玄関ライトを一つずつ確認していくイメージだよ。
選択肢イ
これは間違いだよ。テストケースを少しずつ直して良くしていくのは大事だけど、これはTDDそのものの特徴というより、テスト全般でやる改善作業だよ。料理でいうと、味見しながらレシピを直す感じで、TDDの「先にテストを書いてから作る」という核心とはズレているんだ。
選択肢ウ
これは間違いだよ。カバレージを高めることは品質確認の参考にはなるけど、TDDの主目的ではないよ。TDDで大事なのは、必要な動きを先にテストで表して、そのテストに通る最小限のコードを書き、改善していくことなんだ。スタンプカードを全部埋めることが目的ではなく、ちゃんと目的地に着けるかを確認する感じだよ。
選択肢エ(正解)
これは正解だよ。TDDは、プログラムを書く前に「こう動いたら合格」というテストコードを先に書く考え方だよ。たとえるなら、家を建てる前に完成検査のチェックリストを作っておいて、そのチェックに通るように家を建てる感じだね。
出典:独立行政法人 情報処理推進機構(IPA)令和3年度春期 情報処理安全確保支援士試験 午前Ⅱ 問23(公式資料:問題冊子(PDF) / 解答例)
関連する過去問一覧
- 令和3年度(2021年)の過去問
- 午前Ⅱの過去問
- 令和3年度春期の過去問
- 「企画・設計・開発・運用でのセキュリティ確保」の過去問
- 「情報セキュリティインシデント管理」の過去問
- 情報処理安全確保支援士試験のトップ
IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針