テスト駆動開発|情報処理安全確保支援士 令和6年 秋期午前Ⅱ試験 問23
出典:令和6年秋期 午前Ⅱ 問23
分野:ソフトウェア開発管理技術 / 開発プロセス・ 手法
エクストリームプログラミング(XP:Extreme Programming)における"テスト駆動開発"の特徴はどれか。
- ア:最初のテストで,なるべく多くのバグを摘出する。
- イ:テストケースの改善を繰り返す。
- ウ:テストでのカバレージを高めることを重視する。
- エ:プログラムを書く前にテストケースを作成する。
TSUNAGARU-ADVICE
まず押さえたいこと
テスト駆動開発は、プログラムを書いてからテストするのではなく、先にテストケースを作成してから実装する開発の進め方です。
迷ったときの判断軸
テスト駆動開発では、最初に期待する動作をテストとして定義し、そのテストを通すようにコードを書きます。したがって、プログラムを書く前にテストケースを作成すると整理すると判断しやすくなります。
科目Bにつなげるために
テスト駆動開発そのものは、支援士試験の科目Bで中心的に問われる可能性は高くありません。科目Aでは、実装より先にテストを作成し、テスト・実装・リファクタリングを繰り返す考え方を押さえておきましょう。科目B対策では、セキュアコーディング・脆弱性検査・レビュー・セキュリティテストなど、開発工程で脆弱性を作り込まないための取組を優先しましょう。
テスト駆動開発(TDD:Test Driven Development)は、実装するプログラムを書く前に、まずテストケースを作成する開発手法です。
先にテストを書き、そのテストを通るように最小限のコードを実装し、その後リファクタリングを行う流れで開発を進めます。
したがって、エが適切です。
❌他選択肢が誤りの理由ア:最初のテストで,なるべく多くのバグを摘出する。
⇒バグ摘出を主目的にした説明、という点で違います。TDDは、先にテストを書いて設計と実装を進める手法です。
イ:テストケースの改善を繰り返す。
⇒テストケース改善の反復だけを示している点で違います。TDDの特徴は、プログラムを書く前にテストを書くことです。
ウ:テストでのカバレージを高めることを重視する。
⇒カバレージ向上を主目的としている点で違います。TDDではカバレージも結果的に高まりやすいですが、本質はテストを先に作成して実装を進めることです。