見出し画像

テスト要求とは何だろう?

JSTQBでいうところのテスト分析について理解を深めるためにテスト設計コンテストの主催するテスト要求分析チュートリアルに参加させていただいた。その中でテスト要求という用語が利用されているが、テスト要求とはなんなのか?という疑問が残ったので、今回調べてみました。同じようにテスト要求とは何なのか?というところで躓いている人がいたら共有したいです。
※本記事の「テスト要求」については私個人の解釈です。

◆はじめに
 ~テスト要求分析はなぜ必要か?~

私は、以下がテスト要求分析の目的と解釈しています。
・テストの抜け漏れを防ぐため
・テストの内容に合意をとるため
・要求・設計変更に強いテストを作るため
・必要なテスト(範囲、対象、厚み)を判断するため
ということで、テスト要求分析をする必要性は理解できます。
しかし、テスト要求分析により抽出される「テスト要求」の実態を私は今一つ掴めていません。

参考:テスト設計コンテスト テスト要求分析チュートリアル
http://www.aster.or.jp/business/contest/doc/2020_TRA_1-3_V1.0.0.pdf

◆テスト要求とは一体何か? 
 ~調べる前の解釈~

テスト要求=
・テストすべきこと
・テスト要求分析(テスト分析)により抽出される
・テスト要求≒テスト条件(@JSTQB)?
(具体的にどんなものなのかイメージ掴めない。)

◆テスト要求とは一体何か?
 ~JSTQBから考えてみる~

JSTQBにはテスト要求という言葉は出てこない。
JSTQBには似た用語でテスト条件があるので調べると。

(JSTQB Foundation Level 用語集より引用)
テスト条件(test condition):
コンポーネントやシステムのアイテムやイベントで、 テストケースにより検証できるもの。たとえば、機能、トランザクション、フィーチャ、品質の属性、構造要素など。

JSTQB Test Analysistでは下記のように書かれている。

(JSTQB Test Analysist シラバスより引用)
一般的には、テスト条件をさまざまな詳細度合いで定義することが望ましい。まず、高位レベルの条件を識別し、「画面 x の機能性」など、テストの全般的な対象を定義する。次に、特定のテストケースの基準として、より詳細な条件(たとえば、「画面 x では、正しい長さよりも一桁足りないアカウント番号を拒否する」など)を識別する。この種類の階層アプローチを使用してテスト条件を定義することにより、高位レベルのアイテムに対するカバレッジを十分なものにすることができる。

テスト条件=テスト要求ならば、テスト要求は「画面 x の機能性」やさらに条件を詳細化した「画面 x では、正しい長さよりも一桁足りないアカウント番号を拒否する」といった表現になるはず。

◆テスト要求とは何か?
 ~過去のテスト設計コンテストから考えてみる~

2018 U30 クラスの決勝レポートを参考に、テスト要求分析で何をしているかを調べてみました。(今回は、テスト要求分析の結果として何が明らかになるのかに焦点を当てているため、分析方法には特に触れていません。)

2018 U 30 クラス チーム「T.B.D」さん
- 内容
 ・テストベースから指摘と機能の抽出・整理
 ・ステークホルダーの要求の抽出・整理
 ・機能と要求の関連性を整理 (テスト対応が必要な要求を精査)
- ポイント
 テストする対象となりうる機能を抽出し、テストの範囲を定義している。また、テストポリシー「機能仕様と要求からテスト設計までのトレーサビリティを明確にする」を実現するために機能/要求表で機能の網羅性を確認している。

2018 U 30 クラス チーム「新米」さん
- 内容
 ・テストベースからテストが必要な機能を抽出・整理
 ・テストベースだけでなく、過去の事故事例から、テストが必要な非機能(安全性や妥当性)を抽出・整理
- ポイント
 テストする対象となる機能と非機能を抽出している。非機能についてはテストベース以外の情報から抽出している。 また、テスト目的「人体への危険性の確認(重点)」を実現するために安全性に対する非機能の分析を重点的に実施している。

2018 U 30 クラス チーム「いんプレオ」さん
- 内容
 ・テストベースから機能と非機能を分析
 ・品質観点からテストタイプとテストレベルを検討
 ・テスト分析マトリクスによりテスト対象の機能とテストタイプの関係(テストスコープ)を定義
 ・テスト対象となる機能のリスク分析を実施
- ポイント
 テストする対象となる機能と非機能を抽出している。テスト分析マトリクスによりテスト対象とする機能とテストタイプの関係(テストスコープ)を定義している。

◆結論
 ~今回調べて捉え直したテスト要求~

 色々調べましたが、結局、テスト要求=「テストすべきこと」であることを再認識する結果となりました。しかし、調べる中で気づきもあったのでまとめておきます。

「テスト要求」は下記のようにとらえると解釈しやすい
テスト要求=
・テストベースから抽出したテストすべきこと
・ステークホルダの要求から抽出したテストすべきこと
・テストポリシーやテスト目的から抽出したテストすべきこと
・過去の不具合から抽出したテストすべきこと
・品質観点から抽出したテストすべきこと
・規格や標準から抽出したテストすべきこと
・上記を組み合わせて抽出したテストすべきこと
・etc. (ほかにもありそうです。)

テスト要求分析チュートリアルでは別の見方としてこんなことを言っていた
テスト要求=
・テスト要求分析以降の設計根拠となるもの

「テスト要求」は「広げる」と「絞る」という分析が必要
「テスト要求の範囲を広げる」では、関係する資料や情報からテストすべきことを発散的に出します。これにより、抜け漏れのないテストの実現に近づきます。一方で、現実的には様々な制約があるため、すべてのテスト要求を実現することは難しい場合がほとんどです。なので、「テスト要求の範囲を絞る」で、テストポリシーやテスト目的、リスクなどから重み付けしする必要があるということです。

まだ釈然としていないこともある。。。
・「テスト要求」とJSTQB用語「テスト条件」や「テスト観点」との関係
 過去のテスコン資料を探るとテスト条件=テスト要求のように感じるものもあれば、テスト要求からテスト条件を導出しているものがあったりと、私の解釈が追いつきませんでした。これはこれから学んでいきます。

以上です。読んでいただきありがとうございます (^^)/
もしご意見等あればコメントいただけると幸いです。

この記事が気に入ったらサポートをしてみませんか?