7/31(木)「ソフトウェアテスト勉強会~探索的テストを基礎から学んでみる①~」に参加しました。

名前はよく聞く「探索的テスト」ですが、
正直、”適当な、場当たり的な”印象を持っていました。
今回は、そんな「探索的テスト」についてお話を聞いてきました。

参考資料 : SlideShare[探索的テスト入門]
http://www.slideshare.net/goyoki/ss-34292539?utm_campaign=ss_search&utm_medium=default&utm_source=1&qid=0eac1c4f-ea48-4889-8875-3030115f15c7&v=default&b=&from_search=1

探索的テスト

  • テスト手順のスクリプト化を行わない
  • テスト実施者の知見や思考、事前の分析情報、対象を動作させたフィードバックを元に、テスト実施とテストの構築を並行に実施する
  • スクリプトテスト等と比較して、属人性が高い

アドホックテストとの関係

探索的テストでは、対象をよく理解しようとすることが重要。対象の挙動に基づいて、どのような実装かを予想する。その上で挙動が怪しいと思われるところについて、重点的にテストをする。
また、テスト実施中は“匂い”について敏感にあるべき。対象の挙動について”匂う”と感じた時点では論理飛躍が起きているが、論理飛躍を埋めるような予想とテストを繰り返すことで、匂いの元(欠陥)に到達できることがある。

スクリプトテストに対する探索的テストの特徴

利点

  • 仕様やテスト設計の穴に対して強く、未知の欠陥検出に効果がある
  • 暗黙知や明文化しやすいノウハウを活用できる

欠点

  • 属人性が高く、テスト実施者の能力によって成果に大きな差が出る
  • 記録に残しにくい
  • 網羅的にテストできているかが分かりにくく、テストの品質保証が難しい

探索的テストの活用法

基本的にはスクリプトテストと併用する。回帰テストスクリプトテストで行い、探索的テストで未知な欠陥を検出する。
全てのテストをスクリプトテストで実施しようとした場合、テストのドキュメント化や修正、運用に対して多くのコストを掛ける必要がある。対象の品質を保証するテストはスクリプトテストで構築しつつ、欠陥検出のテストは探索的テストで補完する。

終わりに

探索的テストで重要な”知的なアプローチ”については、もっと色々知りたいと思います。