テストファースト 【test first】
概要
テストファースト(test first)とは、プログラムを開発する際に、先にそのプログラムの動作を検証するテストコードを開発すること。テストをパスするようにプログラム本体のコードを記述していく。通常のソフトウェア開発では、まずプログラムを作成して、その動作が正しいかどうかを検証するために単体テスト(ユニットテスト)を作成するという順序で開発を進めることが多い。テストを実施して誤った結果になれば、プログラムを見直して欠陥箇所を修正する。
一方、テストファーストの考え方では、まずソフトウェアに求められる要件や機能をもとに、プログラムが満たすべき条件をテストコード、テストケース、テストデータとして記述していく。テストに合格できるようプログラムを作成していき、完成したら実際にテストを実施して動作を検証する。
通すべきテストが先に存在することでプログラムに実装すべきコードを見出しやすくなり、早期に動作するプログラムを得ることができるとされる。バグも早期に発見して取り除くことができ、開発段階が先に進んでから問題が見つかって引き返す「手戻り」も減ることが期待される。
テストファーストの考え方を推し進め、先にテストを作り、これをパスする最低限のコードを作成し、これを整理(リファクタリング)して洗練させるというサイクルを繰り返してソフトウェア開発を行う手法を「テスト駆動開発」(TDD:Test-Driven Development)という。
(2024.2.13更新)