2023/11/4のメモがあったので一部編集して放出してみます。
Kazu SUZUKIさんのツイートで、JSTQBのFLのシラバスに書いてあるのを知りました。
お、『アナタはなぜチェックリストを使わないのか?』ってFLシラバスで言及されているのか。ここでいうチェックリストというのは、「テストのガイドライン」とあるからテストケースよりもう少し抽象度の高いものなんだろうけれど、Gawande氏のいうチェックリストと同じ話なのかな。
— Kazu SUZUKI (@kz_suzuki) November 3, 2023
見てみると、たしかに存在。以下、シラバスから貼り付け。
4.4.3 チェックリストベースドテスト
チェックリストベースドテストでは、チェックリストのテスト条件をカバーするように、テストケース を設計、実装、および実行する。
チェックリストは、経験、ユーザーにとって何が重要であるかという 知識、またはソフトウェアが不合格となる理由と仕組みについての理解に基づいて作成することができる。
チェックリストには、自動的にチェックできる項目、開始・終了基準に適した項目、一般的すぎる 項目は含めない方がよい(Brykczynski 1999)。
チェックリストの項目は、多くの場合、質問の形で表現する。
各項目を個別に直接チェックできるようにすべきである。
これらの項目は、要件、GUI の設定、品質特性、または他の形式のテスト条件を参照することがある。
チェックリストは、機能テストや非機能テストなど、さまざまなテストタイプをサポ ートするために作成することができ(例:使用性テストのための 10 のヒューリスティック(Nielsen 1994))。
開発者は同じエラーを避けることを学ぶので、チェックリストへ追加した内容は、時間の経過とともに徐々に効果的でなくなるものがある。
また、新たに発見した重要度の高い欠陥を反映するために、新しい項目の追加を必要とする場合もある。
したがって、チェックリストは欠陥分析に基づき定期的に更新すべきである。
ただし、チェックリストが長くなりすぎないように注意すべきである(Gawande 2009)。
詳細なテストケースがない場合、チェックリストベースドテストは、テストのガイドラインとある程度の一貫性を与えることができる。
チェックリストがハイレベルである場合、実際のテストである程度の ばらつきが生じる可能性があり、その結果、カバレッジが大きくなる可能性があるが、再現性は低くなる。
チェックリストベースドテスト、が経験ベースのテストなのはなんとなくわかります。が、スクリプトテストとどう違うのか・・・。区分としては「経験ベースのテスト技法」ですが。
シラバス読んだ感じで受けた印象としては、Kazuさんおっしゃるように「テストケースよりも抽象的なもの」にみえます。
ここで、あきやまさんのNoteも参照。
用語集によると
経験ベースのテスト技法であり、経験を積んだテスト担当者が、気づき、チェックし、あるいは記憶すべき項目の高位レベルのリストやルール集、検証すべき基準を使用して実施する。
ということで、「こんなときはこういうテストをすべき」的な、テストケース作成時のポイント集、のようなものが該当しそうです。
Kazuさんのツイートを見て、「チェックリストベースドテスト」について調べたり考えたりをしはじめた。
— Yoshiki Ito/伊藤由貴 (@yoshikiito) November 3, 2023
まさに今仕事のなかでやっていることではある、けれど、チェックリストベースドテストのふんいきはわかるけれど具体化がし辛いな?
たとえば、こういうのはチェックリストベースドテストになりますかね。
あるテストエンジニアが、探索的テストをした。
テストの過程で、「ここが怪しそうだ」とか「そういえば前こんな不具合が他部署であったらしいな」とか、
考えたことをメモしておいた。
メモをもとに、「プロのテストエンジニアはこんな視点でテストをしている」というポイントをまとめて、
開発者に共有した。
結果、開発者がテストをするときにも、
そのテストエンジニアの持っている視点の一部を真似できるようになった。
とか。
これはチェックリストベースドテストのように感じます。つまり、探索的テストの成果物としてチェックリストを得て、それを次回以降使う、というもの。一つの形としてありそう。
ただ、チェックリストは個人的には中間生成物のようにも感じたりします・たとえば「こんなテストをしましょう」といういわゆる「テスト観点データベース」のようなものだとしたら、最終的にはチェックリストベースではなく普通にスクリプトベースのテストとして実装されるのでは・・・?
チェックリストのまま使うことは多くないような・・・?
と、ここまで考えたところで、
【ソフトウェアテスト】チェックリストベースドテスト | Almond blue
も参照。
この記事によると、ALテストアナリストのシラバスでは、「チェックリストから動的なテストケースを作成して実行」とある。
つまり、テストケースやテスト仕様書のレベルまで書き起こさずに、より抽象的なレベルの「こんなポイントをテストすべき」というリストをもとにテストする、ということか。
えー、そうなるとテストチャーターを用いた探索的テストと何が違うのでしょうか。