探索的テストについて
「今日中に〇〇をテストしてほしい。」
このように、取引先から急な依頼が来ることは、よくある状況です。そんなとき、テストケースを用意する時間はないけどテストの品質を最低限担保したいといった場合、探索的テストが有効です。
探索的テストとは
事前にテスト計画やテストケースを用意してテストするのではなく、経験ベースでテストしながら次のテストを考える技法。十分なテスト工数の確保が難しい状況やイレギュラーなバグを洗い出す際に用いることが多い。
メリット
・事前準備なしでテストができるため、スピードが速く少ない工数でテストが可能
・テストケースや仕様書を用いたテストに比べ、イレギュラーなバグを検知しやすい
・新たなテストを生み出し、既存のテストケースに導入できる
デメリット
・テスターの経験が浅い場合、テストの品質が確保できない
・ある程度機能を絞って実施するため、網羅性は担保できない
・コンプライアンスベースのテストなどには向かない
例)ガチャの提供割合や法的文言などは、事前にテストケースを用意してチェックする方が望ましい
探索的テストの実行手順
テスト目的の共有
探索的テストを実施する機能の選定
各テスターにテスト箇所をアサイン
※1 テストチャーターの作成
制限時間を定めてテスト開始
結果報告
レビュー/フィードバック
※1 テストチャーター:テストしてほしい範囲や深さや条件などの方向性を支持するもの
実施時の注意点
・優先度を決めて、ユーザーへの影響度を考慮しながらテストする
・実装状況に応じてテストチャーターを決定する
・スピード重視のテストになる場合、取引先とテストカバレッジを明確にしておく必要がある
・進捗やエビデンスを残すため、どのようなテストを実行したかを記録しておく
おわりに
今回は「検証期間が足りない場合」に焦点を当ててまとめましたが、逆の「検証期間に余裕がある場合」でも、探索的テストは有効です。例えば、テスト設計していなかった細かい点のテストチャーターを作成して探索的テストをすることで、思わぬイレギュラーバグを検知したりする場合もあります。
状況に合ったテストを適切に用いることで、テストの品質はさらに向上していきます。今回は、こういったテスト技法があるということを、1つの引き出しとして知っていただけると幸いです。