**ISTQB Foundation Level(CTFL 4.0)のチュートリアル第21回では、「メンテナンステスト(Maintenance Testing)」と「インパクト分析(Impact Analysis)」について学びます。
この章はChapter 2:Testing throughout the SDLC(ソフトウェア開発ライフサイクル全体におけるテスト)**の最後のトピックでもあります。
メンテナンステストとは?
メンテナンステストとは、ソフトウェアがリリースされた後に実施されるテストのことを指します。
つまり、運用中のアプリケーションやシステムに対して、バグ修正や機能改善、新機能追加などの変更が行われた際に、その影響を確認するテストです。
メンテナンス(Maintenance)の定義
-
「Maintenance」とは、稼働中(ライブ環境)のシステムに対する改修や改善を意味します。
-
すでにユーザーが使用している状態で行うため、変更による影響を最小限にすることが重要です。
メンテナンステストの目的
-
変更によって発生した不具合(回帰)を検出する
-
新機能や修正が正しく動作しているか確認する
-
システム全体が安定して動作することを保証する
実際には、メンテナンステストは回帰テスト(Regression Testing)と密接に関係しています。
なぜなら、リリース後の変更は常に既存機能への影響をもたらす可能性があるからです。
メンテナンスの種類
ISTQBでは、メンテナンスを次のように分類しています。
-
修正的メンテナンス(Corrective Maintenance)
→ 不具合修正やバグ対応など。
-
適応的メンテナンス(Adaptive Maintenance)
→ 環境変化に対応するための更新(例:OSやブラウザの更新対応)。
-
予防的メンテナンス(Preventive Maintenance)
→ 将来的な問題を防ぐための改善。
-
完全性向上(Perfective Maintenance)
→ パフォーマンスや使いやすさを改善するための変更。
このように、メンテナンスは単なるバグ修正に限らず、改善・最適化・新機能追加など広い範囲を含みます。
計画的・非計画的メンテナンス
メンテナンステストは「計画的(Planned)」な場合と「非計画的(Unplanned)」な場合に分けられます。
-
計画的メンテナンス:
次回リリースに向けた予定変更(例:後回しにした機能追加や性能改善)
-
非計画的メンテナンス(ホットフィックス / Hotfix):
リリース後に発見された緊急バグの修正など
インパクト分析(Impact Analysis)とは?
インパクト分析とは、変更によってどの部分が影響を受けるかを事前に特定する作業のことです。
たとえば、大規模なアプリケーションでは数千件ものテストケースがあります。
小さな修正であっても、すべてのテストケースを毎回実行するのは非効率です。
そこで「インパクト分析」を行い、
-
どの機能やモジュールが変更の影響を受けるか
-
どの範囲のテストを実施すべきか
を明確にします。
これにより、回帰テストの工数を削減しつつ品質を維持することが可能になります。
メンテナンステストの範囲(スコープ)
テスト範囲は次の3つの要素に影響されます:
-
変更のリスクレベル(Risk of Change)
変更によってどの程度の影響やリスクがあるか。
-
既存システムの規模(Size of the System)
大規模なシステムでは、関連機能が多く影響範囲が広がる。
-
変更の大きさ(Size of Change)
変更が大きいほど、テスト範囲も広くなる。
メンテナンステストを引き起こす要因(Triggers)
メンテナンスが必要になる主なトリガー(きっかけ)は次の通りです:
-
修正(Modification)
既存機能への小規模な変更や改善
-
アップデート(Update)
既存機能を改善・拡張(例:バージョン15.0 → 15.1)
-
アップグレード(Upgrade)
新機能を含む大規模変更(例:15.0 → 16.0)
-
マイグレーション(Migration)
別の環境・プラットフォームへの移行(例:Windows → Linux)
-
リタイアメント(Retirement)
製品・システムの寿命終了時の最終リリース。データアーカイブなどを伴う。
これらのどれもが「変更」を伴うため、必ずメンテナンステストが必要になります。
まとめ:メンテナンステストの重要性
メンテナンステストは、「リリース後の品質保証」を担う重要なプロセスです。
変更によるリスクを把握し、的確にインパクトを分析することで、
コストを抑えながら品質を維持・向上できます。
多くの企業では、専任のメンテナンステストチームを設けており、
運用段階の安定を支える重要な役割を担っています。
💡ポイントまとめ
-
メンテナンステストは「リリース後の変更」に対するテスト
-
回帰テストと密接に関係する
-
インパクト分析でテスト範囲を最適化
-
修正・アップデート・アップグレード・マイグレーション・リタイアが主なトリガー
-
リスク・変更量・システム規模がスコープを決定


コメント