インスペクションを自在にカスタマイズ
インスペクションのカスタマイズ技法 TAQtIC
TAQtICはTailoring Approach for QualiTy-driven InspeCtionsの略です。TAQtICによるインスペクションのカスタマイズ(テーラリング)では、プロジェクトの特徴や事情を考慮すること、関係者の積極的な参加、最終的な成果物の品質に目的を置くことが軸になっています。
プロジェクトの特徴や事情を明らかにすることにより、求められる品質や関係者を明確にします。明確になった求められる品質、関係者を読み方シナリオで結びつけます。例えば、要求仕様を対象としたインスペクションの場合、プロジェクトの関係者の1人であるテスタは与えられた要求仕様からテスト仕様、テスト計画、テストケースが作成できるか、あいまいな点はないかを中心にインスペクションを進めていきます。また、別の例として、ソースコードを対象としたインスペクションで、プログラマーの立場から、求められる品質を保守性とすれば、プログラマーは今後の設計変更に対する柔軟性、ソースコードのコメント、メソッド、関数定義の妥当性を中心にインスペクションを進めていくでしょう。
このように、参加者の日々の活動と最終的な成果物の関係を結びつけることによりインスペクションの観点を明確にし、個々のプロジェクトに適した形態で、参加者の積極的な参加を促すことができます。
カスタマイズ手順
カスタマイズ(テーラリング)は必要な情報を集めながらプロジェクトマネジャー、品質管理マネジャーが主体になって実施します。図2のような手順から構成されます。楕円(だえん)は作業を、四角は作業の結果得られた情報を表します。
「プロジェクトの特徴、事情の明確化」では、プロジェクトのコンテキスト(特徴や事情)を定義します。過去に実施したインスペクションで得られた知見や組織内標準も入力になります。これをもとに全体のソフトウエア開発プロセス、モデルを得ます。具体的には、作業手順、制約(開発期間、確保できる開発メンバのスキルと工数など)、成果物です。この手順は、プロジェクトマネジャー、品質管理マネジャーが実施し、これより先の手順は開発メンバ全員で実施します。
「インスペクションの目的設定」では、プロジェクト関係者で客観的で計測可能な品質の目標を設定します。品質の目標は、プロジェクトマネジャー、アーキテクト、プログラマー、テスタ等の意見や過去のバグトラッキングシステムに記録されている不具合の傾向(故障モード抽出)等から得ます。品質の目標はISO/IEC 9126に示されるような品質特性(機能性、信頼性、効率性、保守性等)から選んでもよいでしょう。
「関係者の明確化」では、プロジェクト関係者を明らかにし、インスペクション対象の成果物とプロジェクト関係者との対応付けをします。例えば、要求仕様のインスペクションにおいて、アーキテクトは設計書に落とせるかどうかという観点で要求仕様のあいまいな部分や矛盾を指摘します。
「作業、要求、欠陥の明確化」では、これまでの手順で得られた情報から、関係者ごとにインスペクション時に利用するシナリオや読み方のガイドラインを作ります。シナリオは(1)導入、(2)指示、(3)質問の3つから構成され、開発メンバの開発における役割やスキルにより異なります。インスペクションではこのシナリオをもとにシナリオベースドリーディングを実施します。1人の開発メンバに対して複数作られることもあります。事例を次ページで詳細に紹介します。
「追加情報の確認」では、前の手順で得たシナリオに関連する規約や標準ドキュメントがないか調べ、あれば、シナリオの中で参照します。
「インスペクションの実行と効果計測」では、シナリオや読み方のガイドラインに基づいてインスペクションを実施し、必要な項目を計測(エラー指摘密度など)します。