リスク

リスクとは、潜んでいる問題が表面化したときに、その問題がもたらす影響のことです。
発生しないまたは影響がないのであれば、リスクにはなりません。
ソフトウェア開発のリスクには大きく分けて、プロジェクトリスクとプロダクトリスクの2種類があります。

プロジェクトリスク

プロジェクトリスクとは、スケジュールやコストなど、プロジェクト全体に影響を及ぼすリスクのことです。

プロダクトリスク

プロダクトリスクとは、開発中のソフトウェアにおいて、機能の不足や誤った処理によって悪影響が生じる可能性のあるリスクです。

リスクレベル

リスクには、レベルがあります。
このリスクレベルは、リスクが発生する可能性と発生した場合の響度でレベルを決定します。

リスクベースドテストにおけるテストアナリストのタスク

ソフトウェアテストでもリスクについての考慮が必要です。
テストアナリストは、テストマネージャーからリスクの高い順にテストが実施できるようにするための作業が依頼されます。
このリスクの高い順にテストを実施することをリスクベースドアプローチ(リスクベースドテスト)といいます。
ソフトウェアテストで発生するリスクの全体的な責任はテストマネージャーが持ちます。

リスクベースドテスト

リスクベースドテストとは、前述したようにリスクを識別してリスク分析と評価を行いリスクレベルが高いものから順にテストを実施します。
リスクマトリクスを作成してリスクレベルを確定します。
リスクの優先度は、発生した確率と影響の掛け算で求めたり、低・中・高などのランクをつけることもあります。

テストアナリストのリスクベーステストのタスク

リスクベーステストでは以下のリスクの流れで作業を行っていきます。

1

リスク識別

発生するリスクを特定します。重要なリスクを多く検出することが大切です。
検出するには、リスクを識別する技法などを使用して識別します。

2

リスクアセスメント

識別されたリスクを分析してリスク分類とリスクレベルを判定します。
プロジェクトリスク、プロダクトリスクやリスクが発生する可能性とリスクが発生した場合の影響を意識する必要があります。
担当者も割り当てます。

3

リスク軽減

リスクに応じてテストの計画・実装・実行を行います。リスクレベルに応じてテスト工数やテスト技法を考慮します。

4

リスクマネジメント

リスクレベルに応じた対策、残存リスクへの対応、リスクに応じたテストへの優先付けをテストのライフサイクルで実施します。
テスト対象の残存リスクを評価するには、テスト結果とリスクのトレサビリティを利用します。

テストアナリストは、リスクの識別、リスクアセスメント、リスク軽減を実行します。
テストライフサイクル中に新たなリスクやリスクの優先度が変更された場合には適宜対応していきます。

アジャイルソフトウェア開発では、リスク識別、リスクアセスメント、リスク軽減のタスクをイテレーションまたはリリースに焦点を当ててリスクセッションで組み込んでいきます。
リスクセッションとは、プロジェクトリスクやプロダクトリスクに関連するリスクを特定し、評価し、対応策を検討するためにワークショップを開催することです。
通常、プロジェクトの初期に実施したり、リスクが変更されたときに実施します。

リスク識別

テストアナリストは、リスク識別で発生するリスクを特定する必要があります。
テストアナリストがリスクを識別するための技法を以下に記載します。

テストアナリストは、担当するソフトウェア品質特性でリスク担当として割り振られますのでリスクを識別します。
ソフトウェア品質特性の詳細は、その章を参照してください。

リスクアセスメント

テストアナリストは、識別されたリスクを分析してリスク分類とリスクレベルを判定します。
リスクレベルを決定するには、システムをリリースして実際に発生してしまう可能性と発生した場合に与える影響を想定して評価します。

テストアナリストは、リスク識別で識別したリスクアイテムがビジネスベースで影響を識別・評価して貢献します。
テクニカルテストアナリストは、リスクアイテムの検出とその可能性を理解して貢献します。

ビジネスリスクに影響する要因を以下に記載します。

テストの優先度は、利用可能なリスク情報とテストマネージャーから提供されたガイドラインからビジネスリスクを確立します。

リスク軽減

テストアナリストは、次のタスクを実行してリスクを軽減します。

テストの優先度付け

テストケースの優先度付けは、テストマネージャーがステークホルダーの影響から決定したリスクレベルを使用します。
高いリスク領域は、専門家と協力してサンプルデータを収集やリスクの検証が必要です。

テスト対象の使用性に大きなリスクがある場合、ユーザー受け入れテストより前に発見できるのならば早期発見が望ましいです。
例えば、ユーザー受け入れテストより前のシステムテストの使用性テストでリスクが軽減します。

リスクを軽減するアプローチとして、高リスクのテストケースを先に実行する「縦型探索」と、すべてのリスク領域をカバーする「横型探索」の2つがあります。

縦型探索

縦型探索は、リスクレベルの高いものからリスクに対して実施します。

縦型探索

横型探索

横型探索は、リスク全体を実施していきます。サンプリングアプローチでは、全てのリスクを少なくても1回はカバーするように実施します。

縦型探索

テストは有限ではないですので、すべてのテストが行えないことはあります。
その場合、テストアナリストは残りのリスクレベルをテストマネージャーに報告します。
テストの延長やリスクの移転の判断を委ねます。

将来のテストサイクルに向けたテストの調整

リスクアセスメントは、定期的に実施する必要があります。
定期的に実施したときに考慮する内容を以下に記載します。

リスクマネジメント

リスクマネジメントは、組織が目的を達成する可能性を高めるために、プロダクトの品質を向上させて、ステークホルダーの信頼と信用を高める活動です。
テスト活動のアプローチでは、リスク分析とリスクコントロールに基づいてテストの優先順位を付けとマネジメントを行うリスクベースドテストがあります。
テストマネージャーの作業のため、詳細はテストマネージャーの章で説明します。

リスク分析

リスク識別とリスクアセスメントを行います。

リスクコントロール

リスク軽減とリスクモニタリングを行います。