開発にCI(継続的インテグレーション)を導入する

CI(継続的インテグレーション)とは

CIとは継続的にビルドやテストをおこなう、ソフトウェア開発のプラクティスです。

CIでは開発者が自分のソースコード変更を頻繁にリポジトリにマージし、その度に自動化されたビルドとテストを実行します。簡単に言えば頻繁にビルドやテストをおこなうための手法です。ソフトウェアをこまめにチェックすることで、手戻りの減少やバグ修正コストの削減を実現し、ソフトウェアをより迅速に開発できるようにします。

欧米ではすでに導入が当たり前になっており、実際に欧州のある自動車メーカーでは自動化環境を整備し理想的なソフトウェア開発の現場を実現したことで、製品のリリースが従来の70倍のスピードで可能になったという効果も報告されています。

今回は、CIツールであるJenkinsとJavaのテストツールであるParasoft Jtest、Parasoft DTPを利用したCI環境を紹介します。

Jenkinsとは

JenkinsはCIを実現するためのオープンソースのツールです。Jenkinsは汎用性が高く大きなコミュニティがあることからCIツールの中でも人気があります。基本的にJavaが動く環境であればLinuxでもWindowsでも動作させることができ導入もしやすいです。また、ビルドやテストに限らずどんなスクリプトでも実行できるので、ビルドプロセスに合わせて柔軟に自動化をおこなうことができます。

CI環境

CIの導入には構成管理サーバー、ビルド環境、静的解析や単体テストのテスト環境といった準備も必要です。環境の準備には相応のコストが必要ですが、一度用意してしまえば何度でも利用でき他のプロジェクトにも使い回すことができます。また、効果としてこれまで開発の最終段階で見つかっていた問題を影響範囲の小さいうちに検知・修正することが可能となり、開発コストを抑えることができます。開発チームの生産性が向上し品質の良いソフトウェア開発の実現が期待できます。

上記はCI環境の一例です。
  1. 開発チームがソースコードをコミット
  2. コミットをトリガーにJenkinsが構成管理サーバーからソースコードを取得
  3. JenkinsがビルドとParasoft Jtestによるテストを実行
  4. Parasoft Jtestのテスト結果をレポーティングツールであるParasoft DTPへ登録
  5. 開発チームがテスト結果を確認

開発チームは自動でテストされた結果をWebブラウザからParasoft DTPにアクセスして確認します。その後、ソースコードを修正、コミットして再びCIを回します。Parasoft DTPからは、さまざまな情報(バグ、メトリクス、カバレッジ)を確認できると共に問題毎に優先度付けや担当者のアサインもできるため、開発者だけではなくマネージャーがプロジェクトを管理するのにも利用できます。

CI導入のメリット

  • 開発工数の削減
    ソースコードの早期チェックにより、バグ解決数の向上やコードレビューの工数が削減される
  • 作業品質の向上
    ビルドやソースコードのチェックの定期実行により、開発されるコードの品質が均一化される
  • 運用の標準化
    自動化や構成管理が適切に行われるようになり、運用のルール化が進む

Parasoft JtestをCIに組み込むメリット

CIのメリットに加えて、以下のメリットがあります。

  • 潜在的なバグの検出
    フロー解析機能を搭載しているため、オープンソースのテストツールでは通常検出することが難しい、複数ファイルに呼び出しがまたがった実行パス上に潜むバグの検出ができる

まとめ

CIにより開発チームの生産性が向上し、より良いソフトウェア開発の実現が期待できますので導入を検討してみてはいかがでしょうか。何から手をつけていけばいいか分からない、きっかけがないという方向けにCI環境構築サービスもおこなっておりますので是非ご利用ください。

Parasoft Jtestについて

Java対応静的解析・単体テストツール Parasoft Jtest

Jtestは、テスト工数の大幅削減とセキュアで高品質なJavaシステムの開発を強力にサポートするJava対応テストツールです。1,000個以上のコーディング規約をもとにソースコードを静的に解析し、プログラムの問題点や処理フローに潜む検出困難なエラーを検出します。さらに、JUnitを用いた単体テストについて、作成、実行、テストカバレッジ分析、テスト資産の管理といった単体テストに係る作業をサポートし、単体テストの効率化を促進します。

Top