**リスクベースドテスト(Risk-Based Testing, RBT)**とは、プロジェクトにおけるリスクの大きさに応じて、テストの優先度やテスト量を決定する手法です。
本記事では、ISTQB Test Management v3.0「Tutorial 16」で紹介されている「1.3.5 Techniques for Risk-Based Testing(リスクベースドテストのテクニック)」を、わかりやすくまとめます。
🔍 リスクベースドテストにおける“テクニック”とは?
一般的なテスト設計テクニックには、同値分割(Equivalence Partitioning)や境界値分析(Boundary Value Analysis)などがあります。
同様に、リスクを評価・軽減するための分析テクニックも存在します。
これらの手法は以下の目的で使われます:
-
各リスクの**発生確率(Likelihood)と影響度(Impact)**を定量的に把握する
-
どのリスクにどの程度のテスト effort(工数)を割くべきかを判断する
-
必要に応じて「リスクを受け入れる(Accept)」か「対処する(Mitigate)」かを決定する
⚖️ テクニックの分類:「Heavyweight」と「Lightweight」
リスク分析の手法は、大きく2種類に分かれます。
|
種類 |
特徴 |
適用シーン |
|---|---|---|
|
Heavyweight Techniques(ヘビーウェイト) |
詳細な分析・多数の関係者・文書化を伴う |
安全性が重要なシステム(医療、航空、車載など) |
|
Lightweight Techniques(ライトウェイト) |
簡易的な分析・少人数での実施 |
Webアプリやモバイルアプリなど非安全系 |
🧩 Heavyweight Techniques(詳細分析向けテクニック)
① Hazard Analysis(ハザード分析)
「Hazard(危険源)」を特定し、リスクが引き起こす**最悪の結果(影響)**を明確にします。
これは、安全性や人命に関わるシステムで特に重要です。
例:
-
医療機器ソフトウェアのバグにより誤投薬が起こる可能性
-
自動車のブレーキ制御ソフトでの故障による事故発生
こうしたリスクは、「ブランドイメージ低下」では済まされないため、詳細なハザード分析が求められます。
② Cost of Exposure(損失コスト分析)
各リスク項目について、以下を比較します。
-
障害が起きた場合の損失コスト(Cost of Failure)
-
そのリスクを防ぐためのテストコスト(Cost of Testing)
もし「テストコスト > 障害コスト」であれば、そのリスクは**受け入れる(Accept)**判断も可能です。
例:
ECサイトの決済で「American Expressが使えない」という制限がある場合、
Amex利用者(顧客の10%)を失う損失と、Amex対応の開発コストを比較。
テストや開発コストの方が高ければ、現段階では受け入れ可能と判断する。
③ FMEA(Failure Mode and Effects Analysis:故障モード影響解析)
各リスクについて、「どのように故障が起こり(Failure Mode)」「どんな影響を与えるか(Effect)」を洗い出します。
さらに、「重大度(Severity)」「発生確率(Occurrence)」「検出容易性(Detection)」を数値化します。
例:
-
自動車のセンサー誤動作 → 警告ランプ未点灯 → 重大事故
-
それぞれにスコアをつけて「優先度(RPN: Risk Priority Number)」を算出し、対策順位を決定
④ Fault Tree Analysis(FTA:フォールトツリー分析)
問題(Failure)から原因をツリー構造でさかのぼる分析法です。
各原因を階層的に分解して、根本原因(Root Cause)を特定します。
例:
-
「テスト失敗」→「データ欠落」→「DB通信異常」→「ネットワーク設定不備」
このように原因を“枝”として掘り下げ、1つずつ対処していくのがFTAの特徴です。
🌿 Lightweight Techniques(簡易分析向けテクニック)
安全性がそれほど重視されないソフトウェアでは、より軽量な手法を用います。
これらは迅速なリスク分析とテスト優先度設定に役立ちます。
主な手法:
-
SST(Systematic Software Testing)
→ 要件仕様が明確な場合に、リスクに基づいて体系的にテスト設計を行う。
-
PRISMA(Product Risk Management)
→ 「製品リスク」を定量化して、どの領域を重点的にテストすべきか決める。
-
PRIME(Pragmatic Risk Analysis and Management)
→ 実務的・現場志向のリスク分析手法で、ステークホルダーの意見を重視。
例:
新しいモバイルアプリのリリース前に、
「決済」「ログイン」「プッシュ通知」などの機能をリスクごとに評価し、
重要度の高い領域から優先的にテストを行う。
🧠 テクニック選択のポイント
どの手法を使うかは、以下の要素で決まります。
-
製品の重要性(Safety-Criticalか否か)
-
開発プロセス(Agile, Vモデル, Waterfallなど)
-
リソースとコストの制約
-
関係者の関与度
たとえば医療・航空・自動車のように「人命」に関わる製品ではHeavyweight手法を採用し、
一般的なWebサービスではLightweight手法で十分です。
✅ まとめ
|
分類 |
主な手法 |
特徴 |
|---|---|---|
|
Heavyweight |
Hazard Analysis, Cost of Exposure, FMEA, FTA |
高精度・高コスト・安全重視 |
|
Lightweight |
SST, PRISMA, PRIME |
シンプル・スピーディ・柔軟対応 |
リスクベースドテストの真価は、限られたリソースを最もリスクの高い箇所に集中させることにあります。
そのためには、各テクニックを理解し、プロジェクトの性質に合った方法を選ぶ判断力が求められます。
💡 まとめの一言
「全てをテストすることは不可能。
だからこそ、“何をどこまでテストするか”を科学的に決めるのがリスクベースドテストの真髄です。」

コメント