探索的テストしていますか?
この記事は、Showcase Gig Advent Calendar 2021 17日目の記事です。
こんにちは!Showcase GigのQAエンジニア横田です。今回は、探索的テストについて書いていきます。
弊社では、定期リリース前のテスト実施時に探索的テストを実施しています。
探索的テストとは何か
JSTQB Foundation Levelシラバスでは、下記のように明記されています。
アドホックテストとは何が違うの?
アドホックテストも、項目書を使用せずに実施するテストです。
実施者の思いつきによってテスト実施するということが、探索的テストと異なる点です。
図で表現するとこのような形です。
丸は実施する機能、虫は潜在しているバグになります。
狭い範囲で、テスト実施者の知見や経験をもとに深堀りをしていき、バグの検出を目指しています。
実際にどのように実施をしているか
弊社では、新規機能やバグ改修によって変更が入る箇所を、探索的テスト実施します。
こうすることで、項目ベースで検出できなかったバグの検出を図ります。
※ 探索的テスト実施前に、変更箇所の要件が満たされているかの機能テストは、別途実施しています。
現在は、リリース前に3セッションを目標に探索的テストを実施しています。1セッションを、60分とし、その時間内でテスト計画から実施までを行っています。
リリース前に3セッション実施するので、合計180分を探索的テストの計画/実施に使用しています。
テスト実施時の流れは、下記になります。
①探索する計画を立てる
②テストを実施する
③実施内容をセッションシートにまとめる
①探索する計画を立てる
最初に、「何をどういった観点でテスト」するかを決めます。
リリース予定の新規機能や改修対象のバグチケットから、決めることが多いです。機能テストは別途実施しているので、異なる条件(環境や設定値など)で計画します。
また、テスト実施者だけでは気付けない観点があるため、実施者+チャーターの2名で計画を立てます。そうすることで、互いの知見を共有し合って、より深いテスト実施をできる様にしています。
チャーターは、テストの方針や目的を示す存在になります。実施者が、何をどのようにテストしたら良いか不明な場合などに、道しるべを行います。
計画した内容を、各セッション毎にJiraのチケットに残しています。次以降のセッションに役立てたり、ナレッジの蓄積をしています。
②テストを実施する
計画が決まったら、テストの実施に移ります。
ここではテスト実施者のみの1人体制になります。実施中にバグが検出されたら、起票はしますが、それ以外は実施に集中です。
基本、このタイミングでは実施内容を正式なドキュメントにはしません。実施中に気付いた事などを、メモ書きするレベルです。
集中して、テスト対象を探索するのです。
1セッションは、ここで終了です。
テスト計画から60分経過したら、テストを終了します。
③実施内容をセッションシートにまとめる
実施が終了したら、実施内容をセッションシートとしてJiraのチケットにまとめます。
計画した内容で、実際にどんな操作をし、どんなバグが発生したのかを記載します。
セッション毎に作成しているため、セッションシートと呼んでいます。
この作成も、実施時同様に実施者1人のみで行います。ただ、作成後は、チャーターがレビューを実施します。
内容に疑問がないか、記載内容に漏れがないかなどを確認します。
セッションシートの記載内容で、リグレッションテスト等のテスト項目として作成するか等の検討材料としています。
イメージ図はこのようになります。
まとめ
探索的テスト導入前は、アドホックテストをやみくもに実施しており、バグは検出するがノウハウとして何も残せないなという状態でした。
探索的テストを導入することで、テスト実施者とチャーター間での知識の共有化を行えるメリットがありました。
また、テスト実施する機能を絞ることで、短時間で効率良くバグ検出が行えています。
課題としては、テスト計画の難しさが挙げられます。テスト計画の観点に偏りが出てしまうので、もっと深い知見を得て広い観点を持ってテスト実施へ挑めるようにしたいです。