QAアーキテクチャの事前検証

「QAアーキテクチャが本当に妥当なのか」は、大抵の場合、サービスやプロダクトリリース後の事後評価で判明します。例えば、以下のような指標の評価が、本当にQAアーキテクチャが妥当かの確認に有効になります。

  • ビジネスの成否。例えば、ビジネスのKPIの達成度、SLAの遵守度など
  • 市場への欠陥の流出の程度
  • 市場でのサービス・プロダクトの品質レベル。例えば、MTTF、実際のパフォーマンス計測結果、ユーザアンケート結果
  • QA活動の生産性の結果評価。例えば、実際にかかったコストやリソースが妥当だったかの評価

ただリリース後の事後評価では、QAアーキテクチャの問題を見つけても手遅れの場合が多いです。適切なQAアーキテクチャの実現のためには、開発途中の事前の検証で問題を見つけて問題是正する必要があります。

今回はそのQAアーキテクチャの事前検証手段について扱います。

QAアーキテクチャの検証手段の導出

QAアーキテクチャの検証手段は、QAアーキテクチャの目標に対応して選定されます。例えば「重大な欠陥の流出を防止したい」といった類の目標があれば、欠陥流出リスクについてのシナリオウォークスルーが検証手段として有効になります。
以降にQAアーキテクチャの検証手段を列挙しますが、これらも一律に有効というわけではなく、QAアーキテクチャの目標に応じて取捨選択していく必要があります。

QAアーキテクチャの検証のアプローチ

QAアーキテクチャの検証は、強いて言うならばモデルの検証のアプローチが多くなります。というのも、QAアーキテクチャは複雑で規模の大きいことから、特定のアーキテクチャ観点で観た、QAアーキテクチャのモデルに切り取らないと、レビューや検証が大変になるためです。
このアプローチはより具体的に書くと、目的に応じてQAアーキテクチャ観点を選び、そのアーキテクチャ観点に基づいてQAアーキテクチャモデリングし、そのモデルを検証する、という流れになります(ここでのQAアーキテクチャモデリングまでは、検証活動の一部として実施するのではなく、QAアーキテクチャ設計として行う場合があります)。

QAアーキテクチャの検証手段の例

シナリオウォークスルー

概要

具体的なシナリオにQAアーキテクチャが対応できるかをレビューしていきます。
QAアーキテクチャに限らず、アーキテクチャの検証手段として一般的な手法です。
使用するQAアーキテクチャモデルは、プロセスモデルあるいはパイプラインモデルが都合が良いです。

手順
  1. プロセスモデルやパイプラインモデルでQAアーキテクチャモデリングする
  2. 具体的な品質課題のシナリオを、上記モデルで対応できるかシミュレーションし、QAアーキテクチャを評価する
補足:使用するシナリオの導出について

QAアーキテクチャのシナリオウォークスルーで使用するシナリオは、QAの目標を具体化して導出します。例えば次のように実施します:

  • 品質モデルを使って品質保証の目標設定をしている場合ならば、品質特性の代表的な具体例をシナリオに使用します。例えば「機能Aの資源効率性仕様Xを、どう品質保証するか」「機能Bの移植性の不具合Yを、どのように検出するか」といった品質特性を具体化したシナリオを導出し、そのシナリオをQAアーキテクチャでどう対応するかレビューしていきます。
  • 品質リスクを使って目標設定をしている場合ならば、リスクレベルの高いリスクについて、リスクシナリオを導出し、それを使ってレビューします。

QA活動による品質リスクコントロール評価

概要

「QA活動によるリスクコントロール」に特化した品質リスク分析・評価です。
品質リスクに対し、QAアーキテクチャでどのように対応するか、そしてQAアーキテクチャでの対応後の品質リスクレベルが妥当か、確認していきます。リスク分析の過程では、リスクストーミングなど他の様々なプラクティスを組み合わせて使用します。
使用するQAアーキテクチャモデルは、リスク管理表です。またリスクの識別やリスクコントロールの評価のために、責務構造モデルやパイプラインモデルなどを使用します。

手順
  1. 品質リスクを識別し、評価します
  2. リスクレベルに応じて、品質リスクをQAアーキテクチャレベルでどのように対応するか分析します。
  3. QAアーキテクチャによるリスクコントロール結果が妥当か検証します。

QA活動によるプロジェクトリスクコントロール評価

概要

「QA活動によるリスクコントロール」に特化したプロジェクトリスク分析・評価です。
開発遅延によるテスト工数の削減、不具合の想定以上の多発、不適切なQA作業といった、プロジェクトマネジメント上のリスクにQAアーキテクチャが対応できるか、確認していきます。こちらも品質リスク分析と同様に、リスク分析の過程で様々なプラクティスを組み合わせて使用します。
最適なQAアーキテクチャの理想像は、開発の状況に応じて適応的に変化します。この適応的な変化は、他のアーキテクチャと比べて、QAアーキテクチャが特に強く持つ特徴です。プロジェクトリスク評価によるQAアーキテクチャ検証は、その適応的な変化への対応を検証する代表的な手段であるため重要になります。

手順

品質リスク分析の手順を、プロジェクトリスクに置き換えて実施します。

QAベースマッピング

概要

QAベース(品質保証活動のインプットリソース全般)が、どのQA活動に対応するかマッピングして、QAベースに漏れなく対応できているか確認する手法です。
膨大なドキュメントを扱うプロジェクトにおいて、Vモデルといったプロセスアプローチ・工程完結アプローチで品質保証を行う場合に有効な手法になります。
使用するQAアーキテクチャモデルは、プロセスモデルあるいはパイプラインモデルです。

手順
  1. QAベースを識別します。QAベースをツリーモデルで洗い出すと言ったQAベースモデリングが有効です。QAベースの粒度はドキュメント単位で行いますが、ドキュメントが大きい場合は、さらに内容を細分化して識別します。
  2. 洗い出したQAベースを、どのQA活動で実現保証するかマッピングし、QAベースにもれなく対処できているか確認します。

QAアーキテクチャ比較評価

概要

複数のQAアーキテクチャを比較し、Pros/Cons分析などを実施して、対象のQAアーキテクチャの問題点を検証する方法です。
比較対象には、検討したが採用しなかったアーキテクチャや、類似プロジェクトのアーキテクチャ、リファレンスとなる望ましいアーキテクチャなどを用います。
比較することで明らかになる改善点は少なくありません。また、QAアーキテクチャに限らずアーキテクチャ設計では、トレードオフの関係から選択する設計判断を多数求められますが、トレードオフでの選択が適切かの評価には、比較評価が有効です。
使用するQAアーキテクチャモデルは、比較したいモデル全般となります。トレードオフの設計判断を比較評価する場合は、意思決定マトリクスなどが有効になります。

手順

対象のQAアーキテクチャと、比較対象のQAアーキテクチャを選出し、評価したいモデルごとに、Pros/Cons分析などで良否を評価します。
そこから、QAアーキテクチャの改善点を識別します。

プロトタイピング・反復開発によるQAアーキテクチャの評価

概要

プロトタイピング開発や、反復開発で先行してQAアーキテクチャを実際に運用し、その結果を見て、QAアーキテクチャを検証します。
この手法を用いると、特定のフィーチャといった小さなスコープ限定ですが、QAアーキテクチャを実際に動かして、問題がなかったか結果評価できます。
また(偽陰性の誤りの評価などに大変有効ですが、現実的には人間の心情的に実施が難しい)エラーシーディングによる評価も一応可能になります。
QAアーキテクチャの評価指標の選出には、GQM法などのプラクティスを組み合わせて使用します。

手順
  1. GQM法などでQAアーキテクチャの評価指標(欠陥流出率など)を識別します。
  2. QAアーキテクチャ設計、QA活動を実施し、その結果を前述の指標で評価します。それによってQAアーキテクチャが適切だったか評価を行います。

QAアーキテクチャブリーフィング

概要

QAアーキテクチャに限定されない、アーキテクチャの一般的な評価方法であるアーキテクチャブリーフィングです。
QAアーキテクチャのステークホルダに、QAアーキテクチャについてブリーフィングを行い、疑問点や懸念点、評価を募ります。
なおそこで意見を引き出す方法として、QCC(Question-Comment-Concern)や前述のシナリオウォークスルーといった他のプラクティスと組み合わせることがあります。
繰り返しになりますが最適なQAアーキテクチャの姿は開発の状況に応じて変わるため、ブリーフィングは複数回実施するのが有効です。
使用するアーキテクチャモデルは、説明しやすいプロセスモデルが代表的です。

手順

ステークホルダにQAアーキテクチャについてブリーフィングを行います。
ステークホルダからQAアーキテクチャについて質問、コメント、懸念点などを出してもらい、そこからQAアーキテクチャの問題点を識別します。

プロセス適合性評価

概要

QAポリシー、法規制、QAに関するプロセス監査項目など、QA活動に関する基準・評価項目に基づいてQAアーキテクチャを監査し、QAアーキテクチャがそれらを達成しているか確認します。
評価項目の作成では、GQM法など他のプラクティスを組み合わせます。

手順

QAアーキテクチャの評価項目を作成し、QAアーキテクチャがそれを達成しているかレビューします。

QAペネトレーション評価

概要

「どのようにQAを失敗させるか」という、いわばプロジェクト妨害者の視点で、QAアーキテクチャを破るシナリオを検討し、それに従ってシナリオウォークスルーを行うアーキテクチャ検証方法です。
高信頼性製品の開発など、品質要求が高いプロジェクトで有効な手法になります。
なおQCDが有限である以上、QAアーキテクチャを破るシナリオの識別はやってみると際限がありません。そのため、リスクベースで優先付けしてシナリオを具体化していきます。具体的には、品質リスク(e.g.検出の難しい不具合)、プロジェクトリスク(e.g.QA活動を困難にするプロジェクト状況)を分析し、リスクの高いものについて、ペネトレーションの観点でシナリオを考えて検証に使用します。

手順

  1. 品質リスク、プロジェクトリスクを分析します。
  2. リスクレベルの高いリスクの具体例のうち、QA活動を失敗させるようなシナリオを識別します。
  3. 上記シナリオにQAアーキテクチャが対応できるかシナリオウォークスルーを実施します。