修正したアプリケーションをいち早くリリースするためには、アプリケーションの動作検証も短時間に終える必要がある。これを実現するのが、継続的インテグレーション(CI)ツールとテストツールだ。新規開発から実施するだけでなく、既存のソースに対しても適用できる。

TIS:3時間おきに回帰テスト
Jenkins、JUnit、PMD など

 「システム稼働後の追加・修正でデグレードを起こさないことに最大の注意を払った」と、TISの竹内祐介氏(アプリケーション開発センター アプリケーション開発部主査)は述べる。

 デグレードとは、システムをバージョンアップした際に、以前よりもサービスの品質が低下することだ。機能追加や修正のためにソースコードを変更したとき、動作検証が不十分だと起こり得る。

 竹内氏がチームリーダーを務めたリース会社の資産管理SaaSの開発プロジェクトでは、特にデグレード対策が重要だった。このプロジェクトでは、最初に必要最小限の機能をリリースし、追加すべき機能は利用部門のフィードバックを受けながら1カ月ごとに追加・修正していく方針が立てられていた。

 竹内氏が採った策は、回帰テストを自動化すること。回帰テストは、バージョンアップのたび、すべてのソースコードに対して同じテストを繰り返し実行する手法だ。CIツールである「Jenkins」などを使って静的/動的テストを自動化し、漏れなくテストを実行するようにした。

3時間ごとにすべての単体テスト実行

 このプロジェクトで開発フェーズに入る前に、Jenkinsと各種テストツールを組み合わせたシステムを構築した。利用したツールは、バージョン管理ツール「Subversion」、ビルドツール「Ant」、コーディング規約チェック「Checkstyle」や単体テスト「JUnit」など5種類のテストツールである。

 これにより、開発とテストを同時に進められる仕組みが整った(図1)。

図1●TISはすべてのソースコードを対象にしたテストを3時間おきに自動実行
図1●TISはすべてのソースコードを対象にしたテストを3時間おきに自動実行
[画像のクリックで拡大表示]