アジャイルプロジェクトでは、コードやテストケース、要件、ドキュメントなどが頻繁に更新されます。
このような変更の履歴を管理し、どのバージョンがどの成果物と対応しているかを明確にするのが「構成管理(Configuration Management)」です。
今回は、ISTQB Agile Tester Extension(アジャイルテスター拡張シラバス)の 3.4.4 構成管理ツール の内容を、具体例とともにわかりやすく解説します。
🔹 構成管理(Configuration Management)とは?
構成管理とは、**「変更履歴を管理すること」**を指します。
これは「バージョン管理(Version Control)」とも呼ばれ、次のような目的があります。
-
どの成果物(要件書、テストケース、ソースコードなど)が、どの時点で、どのように変更されたかを把握する
-
新旧のバージョンを対応づけて、過去の状態をいつでも再現できるようにする
-
誰が、いつ、どんな変更を加えたのかを追跡(トレーサビリティ)できるようにする
アジャイルでは短期間で頻繁に変更が行われるため、構成管理ツールは特に重要な役割を果たします。
🔹 なぜアジャイルに構成管理ツールが必要なのか?
アジャイル開発では、スプリントごとに機能追加や修正が発生します。
例えば以下のようなケースがあります。
-
バグ修正によりソースコードが変更される
-
ユーザーストーリーの追加によりテストケースが更新される
-
要件の変更によりテスト結果レポートも修正が必要になる
これらをすべて手作業で管理するのは非常に大変です。
構成管理ツールを使うことで、変更の追跡・管理が自動化され、混乱や重複を防ぐことができます。
🔹 構成管理ツールで管理される主な対象
構成管理ツールは、単なるソースコード管理だけではありません。
以下のようなアーティファクト(成果物)をすべて管理できます。
|
管理対象 |
例 |
|---|---|
|
ソースコード |
Java / Python / C++ などのプログラム |
|
要件定義書 |
ユーザーストーリー、エピック、仕様変更履歴 |
|
テスト成果物 |
テストケース、テストレポート、バグレポート |
|
自動化スクリプト |
Selenium, Cypress などのテスト自動化コード |
このように、開発とテストの両方の成果物を統合的に管理するのが構成管理ツールの役割です。
🔹 バージョン管理の仕組み
構成管理では、成果物を「バージョン」として管理します。
例えば次のような流れで進みます。
-
チェックアウト(Check-out):作業者がファイルをローカルにコピーして変更を開始
-
変更(Edit):コードや文書を修正
-
チェックイン(Check-in):変更を保存し、新しいバージョンとして登録
これにより、どの変更がいつ行われたのかが履歴として残ります。
また、誤って新しいコードで不具合が出た場合でも、過去のバージョンに**簡単にロールバック(戻す)**ことが可能です。
🔹 バージョン管理システムの種類
バージョン管理システム(Version Control System, VCS)には主に2種類あります。
|
種類 |
特徴 |
代表的なツール |
|---|---|---|
|
集中型(Centralized VCS) |
1つの中央リポジトリで全員が作業する |
Subversion(SVN), CVS |
|
分散型(Distributed VCS) |
各メンバーがローカルにコピーを持ち、後で統合 |
Git, Mercurial |
💡 例:
-
小規模チーム(1つの拠点) → SVNなどの集中型でも十分
-
大規模・リモートチーム(世界中に分散) → Gitのような分散型が便利
アジャイルチームでは、スピードと柔軟性を重視するため、
近年は Git(GitHub / GitLab / Bitbucket) のような分散型VCSが主流となっています。
🔹 構成管理ツール導入のメリット
-
変更履歴のトレーサビリティを確保
どのコードや要件がどのテストで確認されたかを追跡可能。
-
リスクの軽減
間違った修正や削除があっても、すぐに以前のバージョンへ復元できる。
-
チーム間のコラボレーション強化
複数の開発者・テスターが同時に作業しても、変更の競合を最小限にできる。
-
自動化との統合
CI/CD(継続的インテグレーション/デリバリー)ツールと連携し、自動テストや自動デプロイを実現できる。
🔹 実際のツール例
|
用途 |
推奨ツール |
特徴 |
|---|---|---|
|
ソースコード管理 |
Git, GitHub, GitLab, Bitbucket |
ブランチ戦略により複数開発を同時進行可能 |
|
ドキュメント管理 |
Confluence, SharePoint, Google Drive |
バージョン管理+アクセス制御 |
|
テスト成果物管理 |
TestRail, Zephyr, Xray (Jira連携) |
テストケース・レポートとの紐づけ |
|
自動化統合 |
Jenkins, Azure DevOps, Bamboo |
CI/CD環境と連携してテスト実行を自動化 |
🔹 ISTQBサンプル問題(例)
問題:
アジャイルプロジェクトで構成管理ツールを使用する主な目的はどれですか?
選択肢:
A. テストケースの優先順位を自動的に決定するため
B. 要件、コード、テスト成果物の変更履歴を追跡するため
C. テストデータを暗号化するため
D. 不具合修正を開発チームに自動通知するため
正解: ✅ B
構成管理ツールの目的は「変更履歴とトレーサビリティの管理」であり、テストや要件のバージョンを正確に追跡することが中心です。
まとめ:アジャイル開発における「構成管理ツール」の重要性
構成管理は、アジャイル開発を支える「見えない基盤」です。
頻繁に変化するソフトウェアやドキュメントを整理し、チームの混乱を防ぎ、リリースの信頼性を高めます。
特にアジャイルでは、
-
短期間での変更対応
-
複数メンバーの同時開発
-
自動テストとの連携
といった特徴があるため、構成管理ツールは品質とスピードを両立するための必須ツールと言えます。


コメント