「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アーキテクチャモデルは、プロセスモデルあるいはパイプラインモデルが都合が良いです。
補足:使用するシナリオの導出について
QAアーキテクチャのシナリオウォークスルーで使用するシナリオは、QAの目標を具体化して導出します。例えば次のように実施します:
- 品質モデルを使って品質保証の目標設定をしている場合ならば、品質特性の代表的な具体例をシナリオに使用します。例えば「機能Aの資源効率性仕様Xを、どう品質保証するか」「機能Bの移植性の不具合Yを、どのように検出するか」といった品質特性を具体化したシナリオを導出し、そのシナリオをQAアーキテクチャでどう対応するかレビューしていきます。
- 品質リスクを使って目標設定をしている場合ならば、リスクレベルの高いリスクについて、リスクシナリオを導出し、それを使ってレビューします。
QA活動による品質リスクコントロール評価
QA活動によるプロジェクトリスクコントロール評価
概要
「QA活動によるリスクコントロール」に特化したプロジェクトリスク分析・評価です。
開発遅延によるテスト工数の削減、不具合の想定以上の多発、不適切なQA作業といった、プロジェクトマネジメント上のリスクにQAアーキテクチャが対応できるか、確認していきます。こちらも品質リスク分析と同様に、リスク分析の過程で様々なプラクティスを組み合わせて使用します。
最適なQAアーキテクチャの理想像は、開発の状況に応じて適応的に変化します。この適応的な変化は、他のアーキテクチャと比べて、QAアーキテクチャが特に強く持つ特徴です。プロジェクトリスク評価によるQAアーキテクチャ検証は、その適応的な変化への対応を検証する代表的な手段であるため重要になります。
手順
品質リスク分析の手順を、プロジェクトリスクに置き換えて実施します。
QAベースマッピング
QAアーキテクチャ比較評価
概要
複数のQAアーキテクチャを比較し、Pros/Cons分析などを実施して、対象のQAアーキテクチャの問題点を検証する方法です。
比較対象には、検討したが採用しなかったアーキテクチャや、類似プロジェクトのアーキテクチャ、リファレンスとなる望ましいアーキテクチャなどを用います。
比較することで明らかになる改善点は少なくありません。また、QAアーキテクチャに限らずアーキテクチャ設計では、トレードオフの関係から選択する設計判断を多数求められますが、トレードオフでの選択が適切かの評価には、比較評価が有効です。
使用するQAアーキテクチャモデルは、比較したいモデル全般となります。トレードオフの設計判断を比較評価する場合は、意思決定マトリクスなどが有効になります。
プロトタイピング・反復開発によるQAアーキテクチャの評価
QAアーキテクチャブリーフィング
概要
QAアーキテクチャに限定されない、アーキテクチャの一般的な評価方法であるアーキテクチャブリーフィングです。
QAアーキテクチャのステークホルダに、QAアーキテクチャについてブリーフィングを行い、疑問点や懸念点、評価を募ります。
なおそこで意見を引き出す方法として、QCC(Question-Comment-Concern)や前述のシナリオウォークスルーといった他のプラクティスと組み合わせることがあります。
繰り返しになりますが最適なQAアーキテクチャの姿は開発の状況に応じて変わるため、ブリーフィングは複数回実施するのが有効です。
使用するアーキテクチャモデルは、説明しやすいプロセスモデルが代表的です。
プロセス適合性評価
QAペネトレーション評価
概要
「どのようにQAを失敗させるか」という、いわばプロジェクト妨害者の視点で、QAアーキテクチャを破るシナリオを検討し、それに従ってシナリオウォークスルーを行うアーキテクチャ検証方法です。
高信頼性製品の開発など、品質要求が高いプロジェクトで有効な手法になります。
なおQCDが有限である以上、QAアーキテクチャを破るシナリオの識別はやってみると際限がありません。そのため、リスクベースで優先付けしてシナリオを具体化していきます。具体的には、品質リスク(e.g.検出の難しい不具合)、プロジェクトリスク(e.g.QA活動を困難にするプロジェクト状況)を分析し、リスクの高いものについて、ペネトレーションの観点でシナリオを考えて検証に使用します。
手順
- 品質リスク、プロジェクトリスクを分析します。
- リスクレベルの高いリスクの具体例のうち、QA活動を失敗させるようなシナリオを識別します。
- 上記シナリオにQAアーキテクチャが対応できるかシナリオウォークスルーを実施します。