「④コードの変更」を実施した後、「⑤変更後のテスト」で振舞いが変わっていないことを確認します。下図はGoogle testフレームワークを使ったテストプログラムの例です。テストフレームワークでは、フレームワークが用意している仕組みを使って、単体テストを簡単に作成することができます。下図のように、フレームワークを使うことで、テスト結果も分かりやすく表示してくれます。
最終的に「⑥結果の評価」で「リファクタリング」の目標である保守性の問題が解決されていることを確認します。
⑤⑥の結果がNGだった場合は「②解決策の立案」もしくは「④コードの変更」に戻り、繰り返し「リファクタリング」を実施します。この繰り返しが煩わしいと、継続的に「リファクタリング」をしていく上で、大きなブレーキとなってしまいます。この煩わしさを解消するためには、CIフレームワークを使ったシステムで自働化することが有効です。
CIフレームワークを使ったシステムでは、「ビルド」「テスト」「静的解析」を自働的に実行することで、生産性を大幅に上げることができます。
冒頭で「リファクタリング」を踏みとどまらせている要因の一つとして「多忙」をあげました。本来「リファクタリング」は、日常的な開発の中で取り組むべきことです。できるだけ簡単かつ効率的に続けられる環境で実施することが、継続的に「リファクタリング」をしていくための大事なポイントといえます。
![「リファクタリング」の進め方のポイント④⑤⑥CI(継続的インテグレーション)フレームワークを使用して生産性を上げ、「リファクタリング」を日常的な開発の中で継続して実施できるように効率化する|テストプログラムを使用して「リファクタリングbeforeのプログラム」と「リファクタリングafterのプログラム」を実行してもテスト結果は変わらない](img/kaizen/456BA.png)