見出し画像

【テストケースは必要ない】探索的テストとは

外資系企業でソフトウェアエンジニアをしております、タロイモと言います。今日もよろしくお願いします。

みなさんはどんなテスト手法を利用しているでしょうか。

大規模なアプリケーション開発の場合、要件定義からテスト設計をし、テストケースを作成するスクリプトテストが多いかと思います。しかし、そんなスクリプトテストにも勝るとも劣らない探索的テストが最近のトレンドです。

今回は探索的テストのメリットとデメリットを、探っていきます。


1. 探索的テストとは

探索的テストとは、設計書を元に事前にテストケースを作成するのではなく、過去の体験や直前のテスト結果からバグが多そうなテスト対象に目星をつけ、柔軟にテストを行なっていきます。
つまりテスト担当者がテスト内容を考えながら、テストを実行していく方法です。悪く言えば場当たり的なテスト手法とも言えますが、様々なメリットがあります。

一方でスクリプトテストは伝統のテスト手法で、設計書から緻密なテスト戦略を行い、テストケースを作成します。そして、そのテストケースを元にテストを実施していくというものです。


2.探索的テストのメリット

探索的テストのメリットはなんといっても、テストケースを書く必要がないということです。

設計の段階からテストケースを作成すると、実物のソフトウェアを動かすことができないため、要求仕様に沿ったテストケースを書くことになります。しかし、要求仕様に沿ったテストケースは、要求仕様が完璧でない限り、その意味を成すことはありません。

では、テストケースを書く意味ってあるのでしょうか。

結局、テストケースを書くよりも、ソフトを動かしながらやった方が効率的だし、時間も取られないという考えになります。
また、臨機応変にテスト対象を探し出すことで、仕様から推測できないバグを発見することもできます。


まとめると、テスト工数削減とバグ発見のしやすさがメリットということになります。

3.探索的テストのデメリット

探索的テストのデメリットは、網羅性がないということです。

仕様通りにテストを行わないためどうしてもテストが場当たり的になってしまいます。
また、場当たり的なテストはテスト担当者のスキルに大きく依存します。テストの経験が浅い担当者の場合は逆に時間を取られることがあります。
さらに、セキュリティやパフォーマンスなどの非機能テストは仕様に基づき抜け漏れがないことが重視されるため向いていません。


まとめると、漏れがある可能性があること、非機能テストができないこと、テスト担当者の能力に依存することがデメリットに挙げられます。


4.結局探索的テストは良いの?

結局のところ、使い分けが必要かと思います。

アジャイル型開発など、綿密な設計をしない開発だと、テストケースも綿密でない上、開発期間も短いため探索的テストは向いています。
一方で、ガッチリと仕様を固めるウォーターフォール型の開発だと、スクリプトテストを実施し、漏れをなくすことが必要です。

しかし、機能をリストアップし、出来るだけ漏れがなくなるようにすればウォーターフォール型でも探索的テストは利用できると思います。ただ、非機能テストはスクリプトテスト一択です。セキュリティの穴などは場当たりではなかなか発見できませんからね。

ちなみに探索的テストの方がスクリプトテストよりもコードカバレッジが高いというデータもあります。

テストケースをしっかり書いているのにバグが多いという方は、ぜひ探索的テストを検討してみてください。 

本日もご精読ありがとうございました。

よろしければサポートお願いします! サポートは、サービスの開発・改良や、記事を書く際の素材費とさせていただきます。 少しでも有益な情報発信をしていけるよう努めてまいります。 是非とも応援よろしくお願いします!!!🙇‍♂️