記録用ブログ

個人的な記録のためのブログ。主にソフトウェアテストの話題。

エラー推測とリスクベースドテストについて調べてみる

エラー推測とリスクベースドテストって似てる気がします。共感してくれる人がどのくらいいるかは分かりませんが(とても自信がない)。

共通点としては、両方とも「こういうまずいことが起こりそう、起こるかも」ということをベースにしている点だと思っています。
少し脱線しますが、「悪さの知識」と言えるのかな?
「悪さの知識」は以下「ソフトウェア品質は“ユーザー主導”の時代へ」p30によると「そうやると上手くいかないよ、という知識」のこと。
https://qualab.jp/materials/mynavi130626.bw.pdf

例えば、起こりそうな欠陥を踏まえてテストを考えようとしている人がいるとき、それだけではエラー推測をしようとしているのかリスクベースドテストをしようとしているのか、いまいち判断できない気がしたんです。

で、少し調べてみましたという記事です。

先に結論

一言で言うと、リスクベースドテストでいう「リスク」の方が、より範囲が広いのだろうと理解しました。

SQuBOKガイドのリスクベースドテストの記載を見ると、SQuBOKガイドではリスクベースドテストを「テストマネジメントにおけるリスクベースドテスト」「テスト設計におけるリスクベースドテスト」の2つに分けられています。
前者の場合は、必ずしも具体的なエラー・故障・欠陥をベースにするのではなく、機能や非機能の属性などをベースに発生可能性と影響度を判定して進めるケースもあるのだろうと。これは、書籍「体系的ソフトウェアテスト入門」を読んで考えたことです。
後者は結構エラー推測と近いような気がしました。
エラー推測は、機能や属性(だけ)をベースにするのではなく、具体的なエラー・欠陥・故障に着目するのが原則だと理解しました。

また、リスクベースドテストの方が、全体的にプロセスややり方が文献で説明されているケースが多い印象を受けています。
一方のエラー推測は、書籍「ソフトウェアテストの技法」によると「非常に直観的であり,場あたり的なやりかた」と表現されているので、より属人的なのではないでしょうか。

結局、起こりそうな欠陥をリストアップしてテストを考えようとしている人がどちらをやろうとしているのか?は簡単には判定できないという結論です。
ただ、具体的なエラー・欠陥・故障をベースとしているか? 複数の文献で述べられているリスクベースドテストのプロセス・やり方(この記事ではほぼ触れていませんが)に沿ってやろうとしているか?は、判断材料になると思いました。

調べた結果

最初にソースを。後述の結果は、大体以下から、独断と偏見でここぞというところを引用しています。

  • JSTQBシラバス 
  • ISTQB用語集
  • 書籍『ソフトウェア品質知識体系ガイド (第3版) -SQuBOK Guide V3-』 …以下、「SQuBOKガイド」と呼ぶ
  • 上記以外は、以降で書籍等の名称を略さず記載しています。
エラー推測を調べた結果
  • JSTQB FLシラバス 4.4.1 エラー推測

    • 「エラー推測は、エラー、欠陥、故障の発生をテスト担当者の以下の知識に基づいて予測する技法である。」
    • エラー推測っていうくらいなのでエラーだけか、せいぜいプラス欠陥くらいに着目するのかな?と思いきや故障もスコープだという。謎が深まりました。
  • JSTQB ALTAシラバス 3.3.1 エラー推測

    • 「エラー推測技法を使用する場合、テストアナリストは経験を活かして、コードの設計および開発時に発生した可能性のある潜在的なエラーを推測する。テストアナリストは想定されるエラーを識別したら、そのエラーの結果として生じる欠陥を明らかにするために使用する最善の方法を決定する。例えば、テストアナリストが無効なパスワードを入力するとソフトウェアが故障を表示すると想定した場合、エラーが実際に発生し、そのエラーがテストの実行時に故障として認識される欠陥をもたらすかどうかを検証するために、様々に異なる値をパスワード欄に入力するようにテストを実行する。」
    • このシラバスではマイヤーズ氏の「ソフトウェアテストの技法」が紹介されていたので、そちらもみてみたのが次項。
  • ソフトウェアテストの技法」 (近代化学社, 2006 年)  p85

    • 「ある特定のプログラムが与えられたとき,彼らは直観と経験からある種のおこりそうなエラーの型を推測して,これらのエラーを発見するためのテスト・ケースを書くのである.」
    • 「非常に直観的であり,場あたり的なやりかたなので,エラー推測技法としての手順をしめすことはむずかしい.基本的な考え方は、ありうるエラーまたはエラーを生みやすい状況のリストを列挙して,このリストにもとづいてテスト・ケースを書くことである.」
  • SQuBOKガイド 3.8.1.4

    • 「テスト対象プログラムに発生し得るエラーを推測し,そのエラーを見つけ出すための特別なテストケースを設計する技法である〔ISTQB-ALTA 2012〕〔Myers 2006〕。混入しそうなエラーや,エラーが顕在化しそうな状況のリストを作成し,このリストに基づいてテストケースを書く。ここでエラーとは障害の意味である。」
リスクベースドテスト
  • JSTQB FLシラバス 5.2

    • 「リスク分析とリスクコントロールに基づいてテスト活動を選択し、優先順位を付け、マネジメントして いくテストアプローチをリスクベースドテストという。」
  • JSTQB ALTAシラバス 2.1

    • 「テストアナリストは、次のリスクベースドテストのタスクに積極的に関わるべきである。
      ・リスク識別
      リスクアセスメント
      ・リスク軽減」
  • ISTQB用語集 https://glossary.istqb.org/ja_JP/term/risk-based-testing-2-1

    • 「対応するリスクのタイプとリスクのレベルに基づき、テストの活動とリソースの利用をマネジメントし、選択し、優先順位付けするテスト。」
  • SQuBOKガイド 3.8.1.5

    • 「テストマネジメントにおけるリスクベースドテスト」…「プログラムの機能や特性ごとに問題(品質リスク)が発生する可能性(確率)と影響度を分析して,テスト範囲や優先度,リソースの割り当てといったテスト計画を立案し,それらをマネジメントする技法である。分析にはFMEA技法が用いられる〔Craig 2004〕。」
    • 「テスト設計におけるリスクベースドテスト」…「プログラムが障害を起こしそうな状況(リスク)を想定し,それらの障害が実際に検出されるか否かを確認するためのテストケースを設計する技法である。」
  • 「体系的ソフトウェアテスト入門」 (日経BP出版センター, 2004年) 第2章

    • リスク分析にて、機能・属性(パフォーマンスなど)に対して「障害が発生する相対的な可能性の指標」(p24)や影響の判定結果を割り当てている記載があります。