23:59:31)追加された行はこの色です。削除された行はこの色です。Development-テスト駆動開発--「テスト」によって「開発」が「駆動」される開発手法。--テストから先に作る開発技法のことである。---テスト技法ではないので注意。-TDDは[[リファクタリング]]に大きく依存する。--リファクタリングを採用しないと、テスト仕様を最初にすべて洗い出すことになっていしまい、実装していくうちに最初に考え出されたテストは大幅に変更されてしまうこともありえる。テストを修正するのが面倒で実装を無理やりテストケースに合わせてしまい、実装されたコードが複雑になってしまうという最悪のケースもありうる。--リファクタリングを用いたTDDでは最初にテスト項目を洗い出すが、すべてを洗い出すことはしない。1つのテストコードを作ったら、そのテストにパスするソースコードを実装する。リファクタリングをする。-TDDの中でリファクタリングが頻繁に行われるクラスが登場する。これは変更の多いクラスであり、より高いレベルのリファクタリングを行う必要になる。ここまできたときに、[[デザインパターン]]の適用や本格的なオブジェクト指向設計で検討するとよい。-TDDで開発を進めると、[[デバッガ]]を使う機会が激減する。--なぜならばTDDで期待される動きのテストを書いてから実装するからである。--デバッガが完全に不要という意味ではない。-比較的上級のプログラマや、上級のプログラマが付き添ってプログラミングのレクチャーをしてくれる環境でなければ、TDDで開発を行うのは難しいといわれている。[#s4e936ab]-バグの少ない高品質なプログラムが得られる。-いつでも再実行できるテストコードが得られる。-1つ1つのメソッドやクラスが大きくなりすぎず、極力小さく作ることができる。[#p92eaa8c]-ToDoリストで何を作るのかを把握する。-「レッド→グリーン→リファクタリング」というリズムで開発する。--レッド:テストから書いて失敗する。--グリーン:そのテストを通るように実装する。--リファクタリング:重複を取り除く。-レッドやグリーンといった言葉からもわかるように、TDDは[[Eclipse]]や[[JUnit]]のようなツールによって一般に普及することができた。[#y1eb1a87]1:条件分岐から書く。2:リファクタリングにより重複を取り除く。3:デザインパターンの適用、本格的なオブジェクト指向設計を行う。[#q2cf8667]-TDDではサブクラスの前にスーパークラスが作られることはない。リファクタリングの過程で、テンプレートメソッド、即ちスーパークラスの抽象メソッドが登場する。JavaとEclipseで学ぶTDDテスト。