本文へスキップ

FE SUBJECT A

基本情報技術者 科目Aの問題解説:テスト駆動開発(TDD)の進め方として適切なものはどれか。

テクノロジ系 標準 fe_a_s045_q003

問題

テスト駆動開発(TDD)の進め方として適切なものはどれか。

  1. まずテストコードを書き、テストが失敗することを確認してから実装コードを書く(正解)
  2. 全ての実装が完了してからテストコードを書く
  3. テストコードと実装コードを別チームが同時に開発する
  4. テストは手動で行い、自動テストは使用しない
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲

正解と解説

正解:まずテストコードを書き、テストが失敗することを確認してから実装コードを書く

正解はア:TDD(テスト駆動開発)は、先にテストコードを書き、そのテストが失敗することを確認してから、テストを通すための最小限の実装を行う開発手法です。その後、動作を保ったままコードを整理します。

覚え方:流れは「Red → Green → Refactor」で覚えます。Redは失敗するテストを書く、Greenはテストを通す、Refactorは重複や読みにくさを改善する段階です。テストが仕様の役割を果たすため、変更時の不具合検出にも役立ちます。

ほかの選択肢:イのように実装後にまとめてテストを書く方式とは順序が異なります。エの手動テスト中心という説明もTDDの特徴ではありません。

つまずきポイント:Green段階では「きれいなコード」ではなく「テストを通す最小限のコード」を書くのがコツです。設計の改善はRefactor段階に回すため、まず動かすことと整えることを分けて進めます。なお最初にRedで失敗を確認するのは、テスト自体が正しく機能している(誤って常に成功しない)ことを保証するためです。

他の選択肢はなぜ違う?

  • 実装完了後にテストを書くのは従来型。TDDは順序が逆。
  • 別チームでの同時開発という定義ではない。
  • TDDは自動テストが前提。手動のみでは回せない。

この問題について

出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲

IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。

公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。

参考範囲: シラバスVer.9.2参考

参考文献・出典(公式情報)

RELATED

関連問題