修正したアプリケーションをいち早くリリースするためには、アプリケーションの動作検証も短時間に終える必要がある。これを実現するのが、継続的インテグレーション(CI)ツールとテストツールだ。新規開発から実施するだけでなく、既存のソースに対しても適用できる。
TIS:3時間おきに回帰テスト
Jenkins、JUnit、PMD など
「システム稼働後の追加・修正でデグレードを起こさないことに最大の注意を払った」と、TISの竹内祐介氏(アプリケーション開発センター アプリケーション開発部主査)は述べる。
デグレードとは、システムをバージョンアップした際に、以前よりもサービスの品質が低下することだ。機能追加や修正のためにソースコードを変更したとき、動作検証が不十分だと起こり得る。
竹内氏がチームリーダーを務めたリース会社の資産管理SaaSの開発プロジェクトでは、特にデグレード対策が重要だった。このプロジェクトでは、最初に必要最小限の機能をリリースし、追加すべき機能は利用部門のフィードバックを受けながら1カ月ごとに追加・修正していく方針が立てられていた。
竹内氏が採った策は、回帰テストを自動化すること。回帰テストは、バージョンアップのたび、すべてのソースコードに対して同じテストを繰り返し実行する手法だ。CIツールである「Jenkins」などを使って静的/動的テストを自動化し、漏れなくテストを実行するようにした。
3時間ごとにすべての単体テスト実行
このプロジェクトで開発フェーズに入る前に、Jenkinsと各種テストツールを組み合わせたシステムを構築した。利用したツールは、バージョン管理ツール「Subversion」、ビルドツール「Ant」、コーディング規約チェック「Checkstyle」や単体テスト「JUnit」など5種類のテストツールである。
これにより、開発とテストを同時に進められる仕組みが整った(図1)。