エクストリームプログラミング(XP:eXtreme Programming)における"テスト駆動開発"の説明はどれか。
最初のテストでバグを抽出すること
テストケースを順次改善すること
テストでのカバレージを優先すること
プログラムを書く前にテストケースを作成すること