CI(継続的インテグレーション)とは
CIとは継続的にビルドやテストをおこなう、ソフトウェア開発のプラクティスです。
CIでは開発者が自分のソースコード変更を頻繁にリポジトリにマージし、その度に自動化されたビルドとテストを実行します。簡単に言えば頻繁にビルドやテストをおこなうための手法です。ソフトウェアをこまめにチェックすることで、手戻りの減少やバグ修正コストの削減を実現し、ソフトウェアをより迅速に開発できるようにします。
欧米ではすでに導入が当たり前になっており、実際に欧州のある自動車メーカーでは自動化環境を整備し理想的なソフトウェア開発の現場を実現したことで、製品のリリースが従来の70倍のスピードで可能になったという効果も報告されています。
今回は、CIツールであるJenkinsとJavaのテストツールであるParasoft Jtest、Parasoft DTPを利用したCI環境を紹介します。
Jenkinsとは
CI環境
- 開発チームがソースコードをコミット
- コミットをトリガーにJenkinsが構成管理サーバーからソースコードを取得
-
JenkinsがビルドとParasoft Jtestによるテストを実行
- Parasoft Jtestのテスト結果をレポーティングツールであるParasoft DTPへ登録
- 開発チームがテスト結果を確認
開発チームは自動でテストされた結果をWebブラウザからParasoft DTPにアクセスして確認します。その後、ソースコードを修正、コミットして再びCIを回します。Parasoft DTPからは、さまざまな情報(バグ、メトリクス、カバレッジ)を確認できると共に問題毎に優先度付けや担当者のアサインもできるため、開発者だけではなくマネージャーがプロジェクトを管理するのにも利用できます。
CI導入のメリット
- 開発工数の削減
ソースコードの早期チェックにより、バグ解決数の向上やコードレビューの工数が削減される
- 作業品質の向上
ビルドやソースコードのチェックの定期実行により、開発されるコードの品質が均一化される
- 運用の標準化
自動化や構成管理が適切に行われるようになり、運用のルール化が進む
Parasoft JtestをCIに組み込むメリット
CIのメリットに加えて、以下のメリットがあります。
- 潜在的なバグの検出
フロー解析機能を搭載しているため、オープンソースのテストツールでは通常検出することが難しい、複数ファイルに呼び出しがまたがった実行パス上に潜むバグの検出ができる
まとめ
CIにより開発チームの生産性が向上し、より良いソフトウェア開発の実現が期待できますので導入を検討してみてはいかがでしょうか。何から手をつけていけばいいか分からない、きっかけがないという方向けにCI環境構築サービスもおこなっておりますので是非ご利用ください。
Parasoft Jtestについて
Java対応静的解析・単体テストツール Parasoft Jtest
Jtestは、テスト工数の大幅削減とセキュアで高品質なJavaシステムの開発を強力にサポートするJava対応テストツールです。1,000個以上のコーディング規約をもとにソースコードを静的に解析し、プログラムの問題点や処理フローに潜む検出困難なエラーを検出します。さらに、JUnitを用いた単体テストについて、作成、実行、テストカバレッジ分析、テスト資産の管理といった単体テストに係る作業をサポートし、単体テストの効率化を促進します。