5.2 フェーズ混入阻止の支援
フェーズ混入阻止(Phase Containment)とは
Section titled “フェーズ混入阻止(Phase Containment)とは”「フェーズ混入阻止(Phase Containment)」とは、ソフトウェア開発ライフサイクル(SDLC)において、欠陥が作り込まれたのと同じフェーズ内で、その欠陥を発見して除去することを目指す品質保証の概念です。
欠陥が後のフェーズへ流出すればするほど、その欠陥を修正するための「コストと労力は指数関数的に増加」します。そのため、テストアナリスト(TA)は、開発の初期段階から「5.2.1 欠陥検出のためのモデルの利用」および「5.2.2 レビュー技法の適用」という2つの主要なアプローチを駆使して、フェーズ混入阻止を強力に支援します。
5.2.1 欠陥検出のためのモデルの利用 (Using Models to Detect Defects)
Section titled “5.2.1 欠陥検出のためのモデルの利用 (Using Models to Detect Defects)”コードが実際に書かれる前の要件定義や設計のフェーズにおいて、システムがどのように動作すべきかを「モデル」として視覚化・構造化することは、欠陥を早期に発見・予防するための極めて強力な手段です。
TAは、ビジネスアナリストや開発者が作成したモデル、あるいはTA自身がテスト分析のために作成したモデルを検証し、以下の観点から欠陥を検出します。
1. ビジネスプロセスモデル(アクティビティ図やBPMNなど)
Section titled “1. ビジネスプロセスモデル(アクティビティ図やBPMNなど)”ユーザーやシステムが実行する業務フローを表現したモデルです。
- チェックポイント: 業務プロセスの手順に論理的な矛盾やデッドエンド(行き止まり)がないか。特定の条件分岐における処理(例外系)の考慮が漏れていないか。
2. 状態遷移モデル(状態遷移図・状態遷移表)
Section titled “2. 状態遷移モデル(状態遷移図・状態遷移表)”システムが特定のイベントによってどのように状態を変えるかを表現したモデルです。
- チェックポイント: 定義されていない不正な状態遷移が存在しないか。ある状態から特定のイベントが発生した際の挙動が曖昧になっていないか。
3. ユースケースとユーザーストーリー
Section titled “3. ユースケースとユーザーストーリー”ユーザーとシステムの相互作用、および提供するビジネス価値を記述したものです。
- チェックポイント: ユーザーストーリーの「受け入れ基準(Acceptance Criteria)」が十分に具体的で、テスト可能な状態になっているか。エッジケースや異常系のシナリオが抜け落ちていないか。
TAがこれらのモデルをレビュー・構築するプロセスそのものが、要件の曖昧さや仕様の不整合をコーディング前に浮き彫りにし、欠陥がコードに混入するのを未然に防ぐ(予防する)役割を果たします。
5.2.2 レビュー技法の適用 (Applying Review Techniques)
Section titled “5.2.2 レビュー技法の適用 (Applying Review Techniques)”モデルや仕様書、ユーザーストーリーといった作業成果物から効率的に欠陥を検出するためには、場当たり的な確認ではなく、目的やコンテキストに応じた適切な「レビュー技法」を適用することが不可欠です。
TAは、シラバスで推奨される以下のレビュー技法を活用、またはチームに導入することで、フェーズ混入阻止の有効性を高めます。
1. 役割ベースレビュー (Role-Based Review)
Section titled “1. 役割ベースレビュー (Role-Based Review)”レビュー参加者が、特定のステークホルダーやユーザーの「役割(ロール)」になりきって作業成果物を評価する技法です。
- TAの適用方法: TAは「エンドユーザー」「システム管理者」「運用保守担当者」あるいは「悪意ある攻撃者(セキュリティの視点)」など、異なる視点から仕様書を読み解きます。これにより、単一の視点では見落とされがちな、アクセシビリティ、運用性、特定の利用シナリオにおける不備を特定できます。
2. パースペクティブベースレビュー (Perspective-Based Reading: PBR)
Section titled “2. パースペクティブベースレビュー (Perspective-Based Reading: PBR)”参加者が、開発、テスト、利用といった異なる「専門的な視点(パースペクティブ)」から成果物をレビューする技法です。
- TAの適用方法: TAは「テスト容易性(Testability)」の視点を中心に据えてレビューを行います。「この仕様は客観的に合否を判定できるか」「テストデータやテスト環境を準備できる設計になっているか」を検証します。テストが不可能な仕様は、それ自体が重大な欠陥(要件の欠陥)として扱われます。
3. チェックリストベースレビュー (Checklist-Based Review)
Section titled “3. チェックリストベースレビュー (Checklist-Based Review)”過去の経験や一般的な欠陥パターンに基づいて作成された「チェックリスト」を活用する技法です。
- TAの適用方法: 第5章の5.2節で解説したような、過去にプロジェクトで発生した要件の不備、曖昧な表現(「適切に」「高速に」など)、例外処理の漏れなどの項目をリスト化して適用します。これにより、レビューの品質を一定以上に保ち、標準的な欠陥を確実かつ迅速に排除します。
TAとしてのまとめ
Section titled “TAとしてのまとめ”フェーズ混入阻止の成功は、TAが開発プロセスの最上流(シフトレフト)へと深く関与できるかどうかにかかっています。 要件やユーザーストーリーが提示された瞬間から、適切なモデルを使って構造的に仕様を整理し、専門的なレビュー技法を適用して多角的に検証を行うことで、バグをテスト実行フェーズまで「生き残らせない」強固な品質の壁を築くことができます。