第2章 フィードバックを得ながらの作業
システム変更の方法は、大きくふたつに分けることができる
- 編集して祈る
 - 保護して変更する
    
- テストでコードを保護しておく
 - 変更後、それがうまく行ったかのフィードバックを得られる
 
 
正しいことを確認するためのテストは、回帰テストと呼ばれていた      
しかし、大規模なテストでは時間がかかりすぎ、いずれは実行されなくなる
頻繁に実行するために、単体テストを作る  
単体テストは大規模なテストでは埋めることができないギャップを埋めてくれる
単体テストの特徴
- 実行が早い
    
- 一個当たり0.1秒では遅すぎる
 
 - 問題箇所の特定がしやすい
    
- 複数のクラスにまたがると特定がしにくい
 
 
レガシープロジェクトで変更を行う際には、変更に関係しそうな、部分のテストを優先的に用意するのが常に安全    
変更する前に、テストでコードを確認しておくと、間違いに気づきやすくなる
変更の手順
- 変更点を洗い出す
 - テストを書く場所を見つける
 - 依存関係を排除する
 - テストを書く
 - 変更とリファクタリングを行う