継続的インテグレーションとは?変更を早く統合して確認する仕組み

継続的インテグレーションで変更を統合し自動テストで確認する仕組みを示すITパスポート学習用アイキャッチ

結論:継続的インテグレーションは、開発中の変更をこまめに一つの環境へ統合し、テストなどで問題を早く見つける仕組みです。最後にまとめて組み合わせるのではなく、変更のたびに確認することで、どこで不具合が起きたかを追いやすくします。ITパスポートでは、開発を速く進めるためだけでなく、品質を保つための考え方として押さえましょう。

目次

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

複数人が同じソフトウェアを開発すると、それぞれの変更を組み合わせたときに、意図しない影響が出ることがあります。継続的インテグレーションは、各担当者が加えた変更を頻繁に共有し、共通のコードへ統合して確認する方法です。英語のContinuous Integrationを略してCIと呼ばれることもあります。

IPAのITパスポート試験シラバスVer.6.5では、アジャイル開発に関する用語例として継続的インテグレーションが挙げられています。重要なのは、統合を一度きりの作業にせず、変更を小さくして繰り返す点です。

仕組み:変更・統合・確認を短く繰り返す

  1. 変更を共有する:担当者が作業したコードを共通の管理場所へ登録します。
  2. 統合する:共有された変更を組み合わせ、全体として動かせる状態にします。
  3. 自動で確認する:ビルドやテストを実行し、変更で問題が起きていないかを確かめます。
  4. 結果を受け取る:失敗があれば、原因となった変更を早い段階で調べて直します。

統合の回数が少なく、各自が長期間別々に変更すると、最後に組み合わせたときの差分が大きくなります。問題が出ても原因候補が多く、修正に時間がかかりやすくなります。継続的インテグレーションでは、変更と確認の間隔を短くして、影響範囲を小さく保ちます。

継続的デリバリーとの違い

考え方 主な目的 中心となる確認範囲
継続的インテグレーション 変更を早く統合し、不具合を早く見つける コードの結合、ビルド、テスト
継続的デリバリー リリースできる状態を継続して保つ テスト済みの成果物を届ける準備
手作業で最後に統合 完成後にまとめて組み合わせる 大きな差分を一度に確認する

継続的インテグレーションは、主に開発中の変更を統合して確認する段階を扱います。継続的デリバリーは、その後に利用者へ提供できる状態を保つ考え方です。両者は対立するものではなく、前者で問題を早く見つけることが、後者で安定して届ける土台になります。

仕事と日常生活で考える場面

仕事では、複数人で社内申請システムを改修する場合を考えます。画面の担当、データ処理の担当、通知機能の担当が、それぞれの変更を小さな単位で共有し、テスト環境で組み合わせて確認します。通知だけを直したつもりでも、申請データの受け渡しに影響していないかを早く確かめられます。問題が見つかれば、変更量が少ないうちに原因を切り分けられます。

日常生活では、家族で旅行の計画を共有する場面に置き換えられます。交通、宿泊、訪問先をそれぞれ決めた後、出発時刻と予約日を早めに一つの予定表へ集めて確認します。最後にまとめるのではなく、決まるたびに全体の予定へ反映すれば、到着時刻とチェックイン時刻が合わないといった食い違いを早く見つけられます。これは開発手法そのものではありませんが、早めに組み合わせて確認する考え方の理解に役立ちます。

ITパスポート試験での要点

  • 継続的インテグレーションは、変更を頻繁に統合し、問題を早期に検出する考え方です。
  • 目的は、最後に大きな統合問題を見つけるのではなく、変更が小さいうちに確認することです。
  • 自動ビルドや自動テストは、統合後の状態を繰り返し確認するために使われます。
  • 継続的デリバリーは、リリース可能な状態を保つところまで視野を広げる点で区別します。

設問で「変更のたびに統合する」「自動テストで早く検出する」とあれば、継続的インテグレーションを考えます。「利用者へ提供できる状態を継続する」という説明なら、継続的デリバリーとの違いに注意します。

確認問題

問題1

複数人が加えた変更を頻繁に組み合わせ、テストで問題を早く見つける仕組みはどれですか。

  1. 継続的インテグレーション
  2. 最後に一度だけ行う統合
  3. 変更内容を共有しない個別作業

正解:1。継続的インテグレーションは、変更を小さな単位で統合し、問題の発見を早めます。2と3は、問題が見つかったときに原因を追いにくくします。

問題2

継続的インテグレーションと継続的デリバリーの違いとして適切なのはどれですか。

  1. 前者は統合と確認、後者は提供できる状態を保つことに重点がある
  2. 前者はテストを行わず、後者だけがテストを行う
  3. 前者は一人だけの開発でしか使えない

正解:1。両者は連携しますが、継続的インテグレーションは開発中の変更を早く統合して確認する段階を中心に扱います。

関連して学ぶ記事

次の記事を読むと、継続的インテグレーションを開発手法・テスト・改善の流れでつなげて理解できます。

まとめ

継続的インテグレーションは、変更を頻繁に統合し、ビルドやテストで問題を早く見つける仕組みです。試験では、最後にまとめて確認する方法との違い、継続的デリバリーとの役割差、変更を小さく保つ目的を結び付けて覚えましょう。

目次