記録用ブログ

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

探索的テストのプロセスを図にしてみた

これは、ソフトウェアテストの小ネタ Advent Calendar 2020 2日目の記事です。

探索的テストは近年、書籍だけでなくインターネット上にも資料が増え、学習しやすくなってきました。

ところが、探索的テストのプロセスを図示したものは余り見かけない気がしたので、描いてみました。
詳しい人向けに補足すると、チャーターを使ってセッションベースドで行う場合のプロセスを想定しています。  

f:id:mejiro8:20201128232924p:plain
探索的テストのプロセス

さて、「探索的テスト」は人によって随分意味が異なる言葉です。
新人さんなど、システムやテストの知識がない人に敢えて実施してもらうテストという意味で使う人もいるようです。
JSTQBシラバスには次のように書かれており、このブログは、こちらに従っているつもりです。

『探索的テストは、形式的ではない(事前定義されていない)テストであり、テスト実行時に動的に設計、実行、ログ記録、および評価をする。』
テスト技術者資格制度 Foundation Level シラバス Version 2018V3.1.J02 60ページより引用(http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018V31.J02.pdf)

図示したプロセスの通りに探索的テストを行う場合、システムやテストの知識がない人が実施するのは非常に困難だと思います。
図中の「繰り返す」の点線枠内にある通り、テストの準備と設計、実行、フィードバックを基に次の準備と設計、…を繰り返します。
細かな期待結果が提示されていない中で、実行結果を検証しフィードバックを得なくてはなりません。このため、テスト対象そのものやテスト対象が持つべき価値の理解、そして観察力も要求されます。
次々得られるフィードバックを踏まえて素早くテスト設計をするには、テストの技術が必要です。
探索の内容や順序を、フィードバックを基に見直していきます。この見直しがうまくできないと、説得力のない結果になるかもしれません。
幅広くテストするという目的を掲げていたのに、結果的に特定の機能の特定のバグについてしかテストできていない、といったことが起こりうるからです。

探索的テストを行うときは、効果だけではなく、テストの目的を達成するためにどのような人や準備が必要でどのようなプロセスで行うのが良いか、考慮するのが良さそうです。

ちなみに、Advent Calendar 2020の1日目の記事に、テストの学習に使えるテスト対象アプリが掲載されていました。
探索的テストの練習に使えるというアプリも紹介されていましたので、これから勉強しようという方は、ご覧いただくと良いと思います。