Facebook x

ジャンル

テスト技法・工程 2024.03.22
x hatenabookmark

CI(継続的インテグレーション)とは?CIツール「Jenkins」の特徴とテスト環境の構築方法

執筆: Qbook編集部

ライター

CI(継続的インテグレーション)とは?CIツール「Jenkins」の特徴とテスト環境の構築方法

近年のソフトウェア開発では、CI(継続的インテグレーション)と呼ばれる手法が採用されることが増えてきています。この手法において、ソースコードの更新に合わせたビルド・テスト・デプロイを自動化するツールがCIツールです。

今回は、CI(継続的インテグレーション)とは何か、注目される理由と、作業の効率化・人的ミスの軽減に役立つCIツール「Jenkins」についてご紹介します。

もくじ
  1. CI(継続的インテグレーション)とは?
  2. CIが注目される理由
  3. CIツール「Jenkins」で自動テスト環境を構築
  4. まとめ

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

「CI」とは、Continuous Integration(継続的インテグレーション)を略した表現です。

ビルド・テスト・デプロイという一連のソフトウェアの開発サイクルを短いスパンで行うことにより、ソフトウェアの問題を早期に発見し、開発の効率化・省力化や納期の短縮を図る手法のことを指します。

ただ、CIを手動で実施するのは非常に時間がかかるものです。単体テストや個々のモジュールのコンパイルは開発者自身でも対応できますが、さまざまなモジュールが関わる結合テストやデプロイの実施は開発者の負担が大きくなります。

また、短期間で開発サイクルを回すことに伴うコスト増大も懸念されます。

そこで、多くの開発現場では、専用のCIツールを用いて上記プロセスを自動化あるいは半自動化しています。CIツールを用いて自動テスト環境を構築することにより、開発者の負担軽減やコスト抑制を実現するとともに、作業の属人化や人的ミスの発生を防止することが可能です。

2.CIが注目される理由

CIは、コンパイルやテストなどのインテグレーションを実施した際に発生する、さまざまな問題を早期に検出して手戻りを少なくすることで、ソフトウェア開発の品質と生産性を向上させる仕組みです。

ソフトウェア開発の終盤に手戻りが発生すると、改修に工数が割かれ、場合によってはリリースが遅れる可能性があるため、CIを用いた問題を早期検出する手法が注目されています。

3.CIツール「Jenkins」で自動テスト環境を構築

CIツールも様々ありますが、国内でも多くの開発者に使われているのが「Jenkins」です。

当初「Hudson」という名称でリリースされましたが、2011年にOracleとの商標問題が起こってからJenkinsに名称が変更されました。 Jenkinsはソフトウェア開発におけるビルド・テスト・デプロイなどの作業の自動化・効率化を実現します。

「Jenkins」の特徴

JenkinsはWebブラウザから管理や設定変更、レポート閲覧ができます。「継続的なソフトウェアのビルド・テスト・デプロイの実行」「外部ジョブの監視」という2つの機能を持ち、以下の特徴があります。

【1】高い汎用性

JenkinsはJavaで実装され、プラットホームを選びません。基本的にJavaが動く環境であれば、LinuxでもWindowsでも動作可能です。

【2】幅広いトリガー

プログラムを実行する際のきっかけを「トリガー」と呼びます。イベントをトリガーとして設定しておき、決まったタイミングで特定の処理を実行させることが可能です。他のジョブが完了したタイミングや、リポジトリに変更があったタイミングでビルドを実行することができます。

【3】プラグインによる拡張が可能

ユーザーが多いことからプラグインが豊富で、1,400以上のプラグインを利用することができます。日本語の情報が手に入りやすく、日本で広く使われています。

「Jenkins」で自動テスト環境を構築する方法

Jenkinsは、ソフトウェア開発時に行う以下の作業を自動化することが可能です。

  • ビルド
  • デプロイ
  • テスト
  • 静的コード解析

上記の作業を自動化することで、手動での運用に比べ人的負担も少なく、作業の効率化や人的ミスの軽減につながります。また、人員を減らすこともできるため、コスト削減になる点も大きなメリットの1つです。

たとえば設定画面から、テストの失敗をメール通知のトリガー、テスト担当者のメールアドレスをメールの宛先に設定しておけば、テスト失敗時にテスト担当者がメールを受け取ることができます。そうすることで問題が発生したときに、それに対処するまでのタイムラグを減少させることができるのです。

「Jenkins」導入時のポイント

Jenkinsの導入によって作業の効率化を図れますが、利用するチームが増えてくると、管理工数が増えることが考えられます。サーバー負荷が増大して動作が不安定になり、安定稼働のためにサーバー増強が必要になることもあります。開発チームの規模や形態に合わせて、適切な環境を整えることが重要になります。

また、ツールを用いて自動化の環境を立ち上げるには、ある程度の手間と時間が必要です。また、手動に比べて柔軟性は低く、細やかな点までの配慮が及ばない可能性もあります。

そのため、Jenkinsによる効果的な自動テスト環境を構築したい場合は、テスト専門会社へ依頼することをおすすめします。

まとめ

「CI」とは、ビルド・テスト・デプロイという一連のソフトウェアの開発サイクルを短いスパンで行うことにより、ソフトウェアの問題を早期に発見し、開発の効率化・省力化や納期の短縮を図る手法のことです。

CIを手動で実施するのは非常に時間がかかるため、開発の負担軽減・コスト抑制のためにはCIツールを用いて自動テスト環境を構築することも多いです。

本記事では、作業の効率化・人的ミスの軽減に役立つCIツール「Jenkins」についてご紹介しました。CI環境を導入し「Jenkins」で自動テスト環境を構築することで作業効率を上げ、人的ミス軽減やコスト削減につなげることができます。

自動化環境の構築には、経験とノウハウが必要です。「Jenkins」で行う自動化のメリット・デメリットを理解した上で、テスト専門の会社に依頼して開発現場に取り入れてみてはいかがでしょうか。

テスト技法・工程
x hatenabookmark

執筆: Qbook編集部

ライター

バルテス株式会社 Qbook編集部。 ソフトウェアテストや品質向上に関する記事を執筆しています。