2.8K Views
December 20, 24
スライド概要
WACATE 2024冬 での発表資料です。
公開資料としてはワークの問題と解説を割愛しています。
はじめての リスクベースドテスト Introduction to Risk-Based Testing WACATE 2024 冬 まこっちゃん( @makotookano)
自己紹介 ● 岡野 誠 (まこっちゃん) ● WACATE実行委員 X: @makotookano 2
本セッションのゴール ● テストアプローチの一つである「リスクベースドテス ト」について理解を深め、リスクに基づいた合理的な重 み付けができるようになる ● テスト範囲を適切に絞り込んだり、限られた時間内で効 果的にテストを実行することなどに役立てることができ るようになる 3
リスクベースドテストの全体像 Overview
なぜ リスクベースドテストなのか? こんなことありませんか? 「テストしたいことはたくさんあるのに、時間が足りない」 「どのテストを減らすべきかわからない」 例えば、新機能が追加されたとき、すべてのテストを実行する時間がないと きどうしますか? 5
なぜ リスクベースドテストなのか? もし時間内に収めることだけ考えて、やみくもにテストを減らしてしまうと ・・・・ 重要な部分が見落とされてしまうかもしれません。特に、リスクが高い領域 を見逃すと、深刻な問題が後から発覚することもあります・・・ 6
なぜ リスクベースドテストなのか? そんなときに役立つのが、リスクベースドテストです。 本セッションでは、「リスク」を味方につけて、テストに役立てる方法を学 んでいきます。 7
なぜ リスクベースドテストなのか? 原則2:「全数テストは不可能 すべてをテストすることは、ごく単純な ソフトウェア以外では非現実的である。全数テストの代わりに、 テスト技法、テストケースの優先順位付け、リスクベースドテスト を用いて、テストにかける労力を集中すべきである。」 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 8
なぜ リスクベースドテストなのか? 原則2:「全数テストは不可能 すべてをテストすることは、ごく単純な ソフトウェア以外では非現実的である。全数テストの代わりに、 テスト技法、テストケースの優先順位付け、リスクベースドテスト を用いて、テストにかける労力を集中すべきである。」 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 9
リスクベースドテストとは? ● 対応するリスクのタイプとリスクのレベルに基づき、テ ストの活動とリソースの利用をマネジメントし、選択 し、優先順位付けするテスト。 出典: ISTQB Glossary ● リスク分析とリスクコントロールに基づいてテスト活動 を選択し、優先順位を付け、マネジメントしていくテス トアプローチ 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 10
テスト活動とリスクベースドテストの関係 テスト 計画 テスト 分析 テスト 設計 テスト 実装 テスト 実行 テスト 完了 モニタリング/コントロール リスクを洗い出し、優先順位づけ し、それに基づいて対応を計画する 11
テスト活動とリスクベースドテストの関係 テスト 計画 テスト 分析 テスト 設計 テスト 実装 テスト 実行 テスト 完了 モニタリング/コントロール リスクを洗い出し、優先順位づけ し、それに基づいて対応を計画する 計画に基づきリスクを軽減するため の活動を行う。また、軽減状況を継 続的に確認し、定期的にリスクの見 直しを行う 12
テスト活動とリスクベースドテストの関係 テスト 計画 テスト 分析 テスト 設計 テスト 実装 テスト 実行 テスト 完了 モニタリング/コントロール リスクを洗い出し、優先順位づけ し、それに基づいて対応を計画する 「リスク分析」 計画に基づきリスクを軽減するため の活動を行う。また、軽減状況を継 続的に確認し、定期的にリスクの見 直しを行う 「リスクコントロール」 13
リスクベースドテストの全体像と目的 ワーク 対象 ・リスク分析 座学 対象 ・リスクコントロール リスク 識別 リスク アセスメント リスク 軽減 リスク モニタリング リスクを洗い出し リスクの重み付け 対処法の検討 リスクを 減らす対策 リスクの状況 確認・報告 14
補足: 使用する用語について 本セッションで用いる用語は、特に断りがない限り JSTQBの 用語を使用しています。以降、セッション内で定義などにつ いては解説していきますがその点ご了承くださいませ。 15
リスク識別 Risk Identification
身近な「リスク」を考えてみましょう。 となりの人と、ご自身の理解している「リスク」の考え方で、リスクについて話 し合ってみましょう。 (例) ● ● あなたの人生にとって最大のリスク 日々日常生活の中で意識するリスク 17
リスクの定義 それは、 「将来実際に起こるか起らないかわからないもの」 でしたか? それは、 「起こると、悪い こと」でしたか? 18
そもそも、「リスク」とは? ● 「将来、否定的な結果を生む要素」( JSTQB用語集 ) ● 「リスクとは、それらが顕在化することによって悪影響が生じる、潜在的な 事象、ハザード、脅威、または状況のことである。」( JSTQB Foundation シ ラバス v4.0 ) つまり、リスクとは、 「 将来起こるかもしれない何らかの悪いこと 」です。 (個人的解釈) 19
(補足) 「リスク」に好機を含むという考え方もある ● マイナスのことだけではなく、プラスのこともリスクの定義に含める考え方 もあります。 「不確かさの一側面である。リスクは発生が不確かなイベントまたは状態で あり、もし発生したら、プロジェクト目標にプラスあるいはマイナスの影響 を及ぼす。マイナスのリスクは脅威と呼ばれ、プラスのリスクは好機と呼ば れる。」 出典:PMBOKガイド 第7版 Kindle 版. 20
プロダクト開発における様々なリスク 下記を、共通する要素を手がかりに2つに分類してみましょ う。 作業成果物 の納期遅れ 計算誤り 不十分な 応答速度 貧弱なUX スキル不足 使用ツールの 契約切れ 21
プロダクト開発における様々なリスク プロジェクトのマネジメントに関連 作業成果物 の納期遅れ スキル不足 使用ツールの 契約切れ プロダクトの品質特性に関連 計算誤り 不十分な 応答速度 貧弱なUX 22
プロダクト開発における様々なリスク プロジェクトのマネジメントに関連 作業成果物 の納期遅れ スキル不足 使用ツールの 契約切れ 「プロジェクトリスク」 プロダクトの品質特性に関連 計算誤り 不十分な 応答速度 貧弱なUX 「プロダクトリスク」 23
(補足)プロジェクトリスク ● 「プロジェクトリスクはプロジェクトのマネジメントや 統制に関連するものである。」 例: ● ● ● ● 組織的な問題(作業成果物の納期遅れ、不正確な見積り、コストダウンなど) 人の問題(例:スキル不足、対立、コミュニケーションの問題、人手不足など) 技術的な問題(スコープクリープ、ツールサポートの不備など) サプライヤーの問題(例:第三者による納品の失敗、サポート企業の倒産など) 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 24
(補足)プロダクトリスク ● 「プロダクトリスクはプロダクトの品質特性(例えば、 ISO 25010品質モデルに記述がある)に関連するもので ある。」 例: 機能の不足や誤り、誤った計算、ランタイムエラー、貧弱なアー キテクチャー、非効率なアルゴリズム、不十分な応答時間、貧弱 なユーザーエクスペリエンス、セキュリティの脆弱性など 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 25
(参考)システム及びソフトウェア品質モデル 出典:「JIS X 25010:2013 (ISO/IEC 25010:2011)システム及びソフトウェア 製品の品質要求及び評価(SQuaRE)ーシステム及びソフトウェア品質モデル」 26
テスト活動を通して軽減できるリスクはどっち? プロジェクトのマネジメントに関連 作業成果物 の納期遅れ スキル不足 使用ツールの 契約切れ 「プロジェクトリスク」 プロダクトの品質特性に関連 計算誤り 不十分な 応答速度 貧弱なUX 「プロダクトリスク」 27
テスト活動を通して軽減できるリスクはどっち? プロジェクトのマネジメントに関連 作業成果物 の納期遅れ スキル不足 使用ツールの 契約切れ 「プロジェクトリスク」 プロダクトの品質特性に関連 計算誤り 不十分な 応答速度 貧弱なUX 「プロダクトリスク」 28
テストを行うことで プロダクトリスクを軽減できる 「 リスクが高い機能などに対し、リスクが軽減されているこ とを確認する方法で最もわかりやすいのは、テストを実行し て期待通りに動くことを確認することです。「テストによる リスク軽減」は強力な事前予防策の1つであると言える 」 出典: ソフトウェアテスト教科書 JSTQB Foundation 第5版 シラバス2023対 応. 株式会社 翔泳社. Kindle 版. 29
リスク識別とは? ● リスクを発見し、認識し、および記述するプロセス。 出典: ISTQB Glossary 30
リスク識別の目的 ● どのようなリスクがあるのか? リスクを洗い出すこと ● リスクを明らかにすることで、そのリスクに対してテス ト活動を行うことでリスクを軽減できるようにする。 31
リスク識別の例 (参考)ソフトウェアテスト教科書 JSTQB Foundation 第5版 シラバス2023対応. 株式会社 32 翔泳社. Kindle 版.
ワーク① リスク識別 [割愛] 33
リスクアセスメント Risk Assessment
リスクの重みを考えてみよう ● 日常的なリスクを例に、些細なリスク、重大なリスクを 考えてみましょう。 ● それは、なぜ、些細/重大と考えましたか? 35
リスクアセスメントとは? ● 洗い出した リスク のヤバさ を 定量化し、優先順位をつ けれるようにすることです。 ● また、リスクへの対処法の検討も含まれます。 (個人的な解釈です) 36
リスクアセスメントとは? ● リスクを検証し、リスクレベル*を決定するプロセス。 (ISTQB Glossary ) ● リスクアセスメントでは、識別したリスクを分類し、リスク の可能性、リスクの影響、レベルを決定し、優先順位を付 け、対処法を提案する。( ISTQB Foundation レベルシラバス v4.0 ) (*)リスクレベル 影響度と可能性に基づいて定義したリスクの尺度。 37
リスク影響度と可能性とは? リスク影響度 リスクが実際の結果または事象となった場合に引き起こ される損害 リスク可能性 リスクが実際の結果または事象となり得る推定確率 出典: ISTQB Glossary 38
(参考)リスク影響度の定義例 (配布資料に含まれます) 39
(参考)リスク可能性の定義例 (配布資料に含まれます) 40 AGILE TESTING FOUNDATIONS - An ISTQB Foundation Level Agile Tester Guide - Rex Black を参考に日本語に訳したもの
リスクアセスメントの目的 ● リスク識別で洗い出した リスク がどれほどヤバイ(深 刻)かを評価し尺度をつけることで、優先順位を決める ことができる。 ● また、その結果を元にリスクへの対処方法を検討するこ とで、テスト活動に活用できるようになる。 41
リスクアセスメントの例 P: 可能性 C: 影響度 E: 可能性 x 影響度 (暴露 =リスクレベル) (参考)ソフトウェアテスト教科書 JSTQB Foundation 第5版 シラバス2023対応. 株式会社 42 翔泳社. Kindle 版.
リスクアセスメントの例 出典: リスクアセスメント・ハンドブック実務編(2011年 経済産業省) 43
リスクアセスメントととして、リスクポーカーします 本セッションでは 軽量なリスクアセスメント方法の一つとし て、リスクポーカーを行います。 44
ワーク② リスクアセスメント [割愛] 45
(例)リスクレベルに応じたテストの検討例 AGILE TESTING FOUNDATIONS - An ISTQB Foundation Level Agile Tester Guide - Rex Black を参考に日本語に訳したもの 46
アセスメント結果を元に活かすことができること ● 実施するテスト範囲の決定 ● 該当するテストレベルの決定と、実施するテストタイプの提 案 ● 採用するテスト技法と達成すべきカバレッジの決定 ● 各タスクに必要なテスト工数の見積もり ● 重要な欠陥をできるだけ早く発見するためのテストの優先順 位付け ● リスクを低減するためにテストに加えて何らかの活動を採用 できるかどうかを判断 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 47
まとめ Takeaways
まとめ ● リスクベースドテストを取り入れることで、合理的にテ ストの優先順位を決めることができる。 ● リスク分析の結果を活かすことで、テスト範囲を適切に 絞り込んだり、限られた時間内で効果的なテスト活動が できるようになる。 49
本セッションでまだカバーできていないこと ・リスク分析 ・リスクコントロール リスク 識別 リスク アセスメント リスク 軽減 リスク モニタリング リスクを洗い出し リスクの重み付け 対処法の検討 リスクを 減らす対策 リスクの状況 確認・報告 50
リスク軽減とは? 特定のレベルまでリスクを減らす(あるいは、リスクレベル を維持する)ために、判定を下したり、対策したりするプロ セス 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 51
プロダクトリスクを軽減するために取りうるテスト活動 ● リスクタイプに適した経験やスキルのレベルを持つテス ト担当者を選ぶ ● 適切なレベルのテストの独立性を適用する ● レビューの実施と静的解析の実施 ● 適切なテスト技法とカバレッジレベルの適用 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 52
リスクモニタリングとは ● ステークホルダーに対して、既知のリスクの状況を確認およ び報告する活動。( JSTQB Foundation Level シラバス v4.0) 出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 ● 目的は「リスク軽減措置が効果的であることを確認し、リス クアセスメントを改善するためにさらなる情報を入手し、新 たなリスクを識別することである。」 → 継続的に見直して改善することが大切! 出典: ソフトウェアテスト教科書 JSTQB Foundation 第5版 シラバス2023対応. 株式会社 翔泳社. 53
Appendix
参考文献他① ● ● ● ● ● ● ● ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J02 ソフトウェアテスト教科書 JSTQB Foundation 第5版 シラバス2023対応 | 翔 泳社 Agile Testing Foundations: An ISTQB Foundation Level Agile Tester guide (English Edition) ISTQB Certified Tester Advanced Level Test Management Syllabus(v3.0) テスト技術者資格制度 Advanced Level シラバス日本語版 テストマネージャ Version 2012.J04 SQuBOK(R)-ソフトウェア品質知識体系ガイド/日科技連 プロジェクトマネジメント知識体系ガイド(PMBOKガイド)第7版+プロ ジェクトマネジメント標準 55
参考文献他② ● ● ● ● ● ● ● 32号:わたしは、リスクベースドテストが嫌いです|Kouichi Akiyama 第257回: 「ALTAのテキストをつくろう」17 (リスクベースドテスト) |Kouichi Akiyama 第258回: 「ALTAのテキストをつくろう」18 (リスク識別)|Kouichi Akiyama 第259回: 「ALTAのテキストをつくろう」19 (リスクアセスメント) |Kouichi Akiyama 第260回: 「ALTAのテキストをつくろう」20 (リスク軽減)|Kouichi Akiyama リスクベースドテストに使うプロダクトリスクについて|Tsuyoshi Yumoto 実践リスクベーステスト-PRISMAメソッド-というpdfを原著者から翻訳と公 開に関して許可をとって。翻訳してみました - Qiita 56
(補足)本セッションで扱ったリスクベースドテスト テストマネジメントにおけるリスクベースドテスト プログラムの機能や特性ごとに問題(品質リスク)が発生する可能性 (確率)と影響度を分析して、テスト範囲や優先度,リソースの割り当 てといったテスト計画を立案し、それらをマネジメントする技法であ る。・・・」 テスト設計におけるリスクベースドテスト 「プログラムが障害を起こしそうな状況(リスク)を想定し、それらの 障害が実際に検出されるか否かを確認するためのテストケースを設計す る技法である。」 出典:SQuBOK Guide V3― (p.207). Kindle 版. 57
(参考)どのように「リスク」をテストに活かすかの例 テスト 計画 - リスク識別 と評価(発生 可能性・影響 度) テスト 分析 テスト 設計 - リスク評 - リスクレベ 価に基づ ルに応じたテ きテスト ストケース設 条件を選 計 択 - 優先順位を - 高リスク - テスト技法 設定し高リス 領域の重 を適切に選 ク領域にリ 要シナリ 択、リスクレ ソースを集中 オを重点 ベルに応じた 化 カバレッジ基 準 テスト 実装 テスト 実行 - 高リスク - 優先順位に基 ケースを づきテストを実 優先的に 行(高リスクな 実装 欠陥を早期検 出) - 必要なテ ストデー - リスク残存レ タや環境 ベルを評価 を準備 テスト 完了 - リスク軽 減成果の評 価と残存リ スクの報告 - 教訓を収 集し次回改 善点を特定 58
(参考)様々なリスクベースドテスト技法(重量級) 正式な手順と詳細な文書化を伴います。 Hazard Analysis (ハザード分析):リスクに関連する潜在的な危険を特定するための分 析を行います。 Cost of Exposure (露出コスト分析):各品質リスク項目について、故障の可能性、典型 的な故障に関連する損失コスト、およびそのような故障をテストするコストを決定しま す。 Failure Mode and Effect Analysis (FMEA) :およびその派生技法:品質リスク、その原 因、予想される影響を特定し、重要度、優先度、検出率を割り当てます。 Fault Tree Analysis (フォールトツリー分析):潜在的な故障をそれを引き起こす欠陥に 関連付け、根本原因を特定します。 59
(参考)様々なリスクベースドテスト技法(軽量級) 重量級の技法ほど厳密ではなく、テストチームとステークホルダーの負担を抑えることができま す。 Risk Poker:リスクの発生可能性と影響度を迅速かつ効率的に評価するために、チームメンバー間 でカードを使用してリスクレベルを合意するグループ評価技法です。 Systematic Software Testing (SST):要求仕様が提供されている場合に使用される技法です。 Pragmatic Risk Analysis and Management (PRAM):ステークホルダーの入力に基づきリスク分析 を行います。 Product Risk Management (PRISMA):要求仕様やその他の仕様を基にリスク分析を行う技法で す。 60