≡ はじめに
前回は、「3. テスト技法」の「3.3 経験ベースのテスト技法」の「3.3.3 探索的テスト」の定義等について書きました。
前回の復習は以下で模擬試験問題の確認を通して行います。
今回はJSTQBのALTAシラバスの「3.3 経験ベースのテスト技法」の「3.3.3 探索的テスト」の残り(カバレッジ、検出できる欠陥の種類)と「探索的テストのはじめかた」(実践)について書きます。
なお、キャッチイメージが「Hop on-Hop offバス」なのは、探索的テストツアーつながりです。
≡ 前回の復習
以下は前回出題したJSTQB ALTAの模擬試験問題を𝕏にポストした結果です。
投票の結果、選択肢1の「テストセッションごとにテスト結果をとりまとめると良い」が82.9%と最も多く、正解も1です。
前回のnoteでわかってほしかったことは、「テストセッションごとにテスト結果をとりまとめると良い」が全てですので、高い正解率で良かったなと思います。正答率と実施率は違うかもしれませんが、知らないことは実施できないことから考えて、素直にうれしいです。
実は、この話題は大事なことと考えていますので、今回の後半の「探索的テストのはじめかた」にも書きます。
前回の復習は以上として、今回のnoteのテーマに移ります。
≡ 探索的テストのカバレッジ
JSTQBのALTAシラバスの該当箇所の全文を引用します。
色々書いてありますが、「探索的テストのカバレッジはテストチャーターで決まる(測る)」ということです。
テストチャーターについては後半の「探索的テストのはじめかた」で具体例を示しますが、ここでは前回コピペした用語集を再コピペします。
テストセッションは前回の問題にもでてきましたが、「探索的テストをタイムボックスで、=例えば30分間、実施しましょう」といったときの、時間で区切られたテストのことです。
≡ 探索的テストで検出できる欠陥の種類
JSTQBのALTAシラバスの該当箇所の全文を引用します。
バシッと書いてありませんが、「非機能の欠陥」は探索的テストの検出対象外(=見つかることもある)と考えて、別途実施するのが基本です。
≡ 探索的テストのはじめかた
「探索的テストのはじめかた」はJSTQBのALTAシラバスにはありません。
ただ、ALTAの「学習の目的」では、探索的テストはK3(適用)となっています。
K3ということは、実践できるようになることが求められています。
そこで、試験にはでないかもしれませんが、どうやって探索的テストを実施するのかについて、初心者向けに書きます。
■ 準備
探索的テストを始めるにあたり、「テストチャーター」を準備する必要があります。テストチャーター(test charter)とは、「テストセッションのゴールや目的を記述したドキュメント。」(ISTQB用語集より)のことです。
テストチャーターは、複数の人が探索的テストを同時に行ったときに、「同じ所ばかりが同じ観点でテストされないようにする」ための指示が書かれたカードのようなものです。
具体的には以下の形式でカードをつくります。(断言していますが、色々な書き方で良いです。実際のところ、様々な書き方が提案されています。(ここでは初心者向けに決め打ちにしています))
このように「テスト対象」と「テスト方法」と「見つけたいバグ」の3つが書かれたカードがテストチャーターです。超ハイレベルテストケースと言っても良いです。
このカードを何枚も用意することが「探索的テストの準備」です。
それでは、JaSST'18 Tokyoの「やってみよう!探索的テスト」の20ページからチャーターの例を一つ引用します。
テスト方法がツアー名ではありませんが、このように、テスト方法にはテストで使用する資源について書くこともあります。
ツアー名で書くとしたら「知的ツアー」かな。(ツアー名は次に出てきます)
つくったテストチャーターは、探索的テストを実施する人たちに分配します。タスクかんばんを使っているならテストチャーターを付箋紙に書いてタスクかんばんに貼って、やりたいカードをテスター本人に選んでもらうのも良い方法です。
■ 実施
実施前に、1つのテストチャーターを実行する時間を決めます。まずは、30分間(のタイムボックス)がよいでしょう。
そして、テストチャーターの指示にしたがってテストを実行します。
具体的には、テストチャーターに書かれているテスト対象に対して、テスト方法(ツアー)を実行し、見つけたいバグを探します。
で、何度も出てきた「ツアー」ですが、以下の4つのツアーから選んでください。
ランドマークツアー: 重要な部分 (ランドマーク) をテストする
FedExツアー: データ(FedExの荷物を連想)の流れをテストする
スーパーモデルツアー: ユーザー インターフェイスのみをテストする
知的ツアー: テスト対象にとって最も難しく厳しい条件をテストする?
このやり方になれてきたら、テストチャーターのテスト方法を無視して、1から4を同時に行ったり、他のツアー(ツアーは下記のように全23種類あります)を試してみても構いませんが、まずは、テストチャーターにある1つの方法に集中するほうが良いです。
■ 確認
前回の問題のとおり、「テストセッションごとにテスト結果をとりまとめると良い」は初心者であっても、というより初心者は絶対にやる方が良いです。主に探索的テストを並行して実施したメンバーが集まって行いますが、そうでない人も呼んで「テスト セッション中に経験したこと」について話すことが有効です。
≡ ツアーについて
上記のツアーですが、有名な『Exploratory Software Testing』という本に書いてあります。探索的テストのバイブル的な本です。
そこには、6つの地区と、23のツアーが書いてあります。以下にさらっとまとめますが、まずは、上記の4つのツアー(探索先)でいいです。
4つのツアーだけで良いですが、以下のリストを読むことで「こういうことをするとバグが見つかるのか」とわかります(バグを見つけるアイデアの引き出しが増えます)ので、テストを初めて間もない人には参考になると思います。テストのエキスパートがみたら、「そうそう。やるよね」って感じだと思います。
※ 太字は、初心者におすすめの4つのツアーです。
≡ JSTQB ALTA試験対策
いつものことですが、まずは、「学習の目的」を確認します。
「与えられたシナリオ」とは、例えばユーザーストーリーのことです。
K3ですので、知識だけではなく適用できる(探索的テストを実施できる)能力が求められます。(K2:理解、K3:適用、K4:分析)
答えは次回に書きます。
≡ おわりに
今回は、「探索的テスト」の実践がテーマでした。
上に長々とツアーの話を書いたのは、それがテストに役立つからです。テストのエキスパートと呼ばれる人の多くはこういうツアーをしていると思います。
ところで、私自身、「探索的テストはテストのエキスパートが実施して初めて効果が出るテストです」と何度も言ってきました。
それは間違ってはいないと思うけど、エキスパートでなくてもバグは見つかりますし、なにより、初心者にテストの楽しさを実感してもらうために探索的テストを実施してもらうことはとても意味あることだと思うようになりました。
次回は、「3.3.4 欠陥ベースのテスト技法」です。