半分自分のメモ用です。まだ編集中です
そもそもなんでテスト条件という言葉があるの?必要なのそれ?
→必要です。
まずテストケースという言葉がありますね?これはテストを具体的に記述したもので、どちらかというと手順寄りです。
それとは別に、「テスト観点」というものがあります。テスト観点という新しい言葉を持ち出すとそれはそれでなんじゃそれ、となると思いますが
要するにテスト観点というのは「テストを考える際に気をつけたいこと」を指します。このシステムなら「二重決済が起きないか」を心配するよね?とか、組み込みシステムなら、「チャタリングが起きないか」を気にするよね?とか。
それで、この観点から直接テストケースまでいけるかということなんですね。これが、微妙なんですが「直接導けることもあるし、そうでないこともある」というのが結論です。
この話をするには、また新しい概念を持ち出さないといけなくて、頭が混乱するかもしれないけど
ハイレベル(高位レベル)テストケースとローレベル(低位レベル)テストケースの概念を理解する必要があります。
ハイレベル、ローレベルが何のレベルを表しているかというと、それは抽象度のレベルを指しています。
簡単に言えば、テストで使う具体的なパラメータが決まっていたらローレベルテストケースだし、ハイレベルテストケースはそこまで具体的に決まってません。
例えば同じ負荷テストのテストケースを記述するとして
- システムに負荷が掛かった状態で、処理を実行する
- システムに同時に300人がアクセスした状態を負荷テストツールを使用して擬似的に作り、この状態で実行ボタンを押下する
というのでは、前者はこのままではテストできないですが後者は具体的になっているのでこのまま実行できますね?
なのでハイレベルかローレベルかというのは「そのままテスト実行できるかどうか」の違いということもできます。
話を戻します。
ここからはあくまで僕の理解ですが、ハイレベルテストケースというのはテスト条件と定義としてはほぼイコールです。
で、なぜハイレベルテストケースが必要なのか?というと
観点レベルのいわばキーワードみたいなものと、具体的な値を決めたローレベルテストケースでは乖離がありすぎることがあるんですね。
だから、これってそもそもどういうことをテストしたいんだっけ?っていうのをテスト観点ほど抽象度を高くなく記述できる様式として、テスト条件というのが使われることがあるのです。
(テスト観点に抽象度のレベルがあって、それを区別したら観点だけで事足りるのでは?と思うかもしれないけど、その疑問は僕にも答えられません。にしさんとか秋山さんに聞いてみてください)
以下参考
テスト条件のインプット
- テストベース
- 過去の欠陥に関する知識
- ステークホルダのテストに対する要求を記述した文書
テスト条件のアウトプット
識別されたテスト条件
- このテストをしたい
- この欠陥を見つけたい or ないことを確かめたい
- 特定の品質特性について、測定したい(性能など)
テスト条件の記述様式
抽象度のレベルは異なることがある
- システムに特定の負荷が掛かった状態で、正常に情報照会が行えること
- システムの特定のパラメータを変更した時、予期している通りのエラーメッセージが出力されること
参考文献: @mkoszk さんの資料
テスト要求分析を語る夕べ
https://twitter.com/mkoszk/status/1017362622612508673?s=21