テストファーストとリファイクタリング テストファースト(ドリブン)プログラミングとは(What) プログラムを作る前にテストを作り、テストをしながらプログラム完成させる手法 空っぽのプログラム(hello.c)で、テストを動かす(必ず失敗する!!) プログラムを改良して、再度テスト(成功すれば完成 !!) 「プログラムの完成」でなく「テストの全成功」が目的になる(気持良い) 目標がたてやすく、進行状況も分かり易い テストが先なので、大胆な改良が可能(Why) リファイクタリングとは(What) プログラムの機能を変更せずに、内部の構造を改良する事 → これによって、プログラムの改良がしやすくなる(Why) どうせ改良するなら、機能もふやせば ? → 機能をふやすとバグ(プログラムの誤り)が増えるかもしれない リファイクタリングの利点 「機能追加」と「構造の整理」を分割する事により、問題を減らす テストファースト手法と組で利用される事が多い テストコードが再利用できる(機能が増えてないから/生産性の向上)