ソフトウェア開発とプロジェクト管理
テスト駆動開発(TDD)の進め方として、適切なものはどれか。
- Aまだ失敗するテストを先に書き、それを通す最小限のコードを書いてから、テストが通る状態を保ったままリファクタリングする
- B機能のコードをすべて書き終えてから、そのコードの分岐をたどってテストケースを作る
- Cテストは専任のテスト担当者が書き、開発者は結合テストの段階になるまでテストを実行しない
答えと解説を見る
正解:A. まだ失敗するテストを先に書き、それを通す最小限のコードを書いてから、テストが通る状態を保ったままリファクタリングする
テスト駆動開発では、これから作る機能の小さな仕様をテストとして先に書き、実行して失敗すること(レッド)を確かめます。次にそのテストを通す最小限のコードを書き(グリーン)、テストが通る状態を保ったまま重複などを整理します(リファクタリング)。この短い繰り返しで、テストがそろった状態を保ちながら少しずつ機能を増やします。組込みのファームウェアでも、ハードウェアに依存する部分を差し替えられるようにして、開発用のPC上で単体テストを繰り返し実行する使い方がされます。
- A. 正しい。レッド(失敗するテスト)、グリーン(通す最小のコード)、リファクタリングの順に繰り返します。
- B. コードを先に書いてからテストを作る従来の順です。テスト駆動開発ではテストを先に書きます。
- C. テスト駆動開発では、開発者自身が書いたテストを、コードを書くたびに実行します。