2014年7月24日

イマ旬キーワード

探索的テスト

従来とは異なるソフトウエアテスト手法である「探索的テスト」が注目されています。今回は探索的テストの概要と、その活用に向けた動向を紹介します。

技術開発本部 熊川 一平

「探索的テスト」とは?

システム開発で従来行われてきた「記述式テスト(スクリプトテスト)」は、設計書や仕様書をベースにあらかじめテスト内容を考え、テストケースと呼ばれるドキュメントに記述して実施する手法です。記述式テストは仕様に対して網羅的にテスト出来ますが、事前準備に時間を要する上に、原則として作成した全テストケースを実施するため、システムの不具合が見つかる確率の低いテストも実施する必要がありました。

これに対して、新しい手法である「探索的テスト」では、テストを実施しながら次に行うテスト内容を考えていきます。具体的には、直前のテスト結果やテストした際のソフトウエアの振る舞いに着目し、臨機応変にテスト内容を決めることで、システムの不具合が潜んでいそうな箇所に対し集中的にテストを行います。テストケースのドキュメントを作成しなくて済むため、テストの事前準備が減り、効率よくシステムの不具合を発見することができます。テストの実施担当者に一定のスキルは要求されますが、仕様が未確定なまま開発を行った場合でも、設計書や仕様書に依存することなくシステムの不具合を発見できる点が優れています。

このように、記述式テストと探索的テストにはそれぞれメリットとデメリットがあるため、仕様に対して網羅的なテストを行う記述式テストと、不具合に対して集中的にテストを行う探索的テストを組み合わせ、両者を相互補完的に実施することが一般的に重要と言われています参考1、2、3

【図】

図1:記述式テストと探索的テストのイメージ

「探索的テスト」の効果を高める管理手法

探索的テストは北米の企業などで活用が進むものの参考4、国内、特に金融機関や企業向けのシステム開発での活用事例はあまり多く見られません。これは探索的テストが以下のような問題を抱えていることが原因と想定されます。

  • テストの内容を事前にレビューできないため、あまり効果的でないテストを実施してしまう。また、複数のテスト担当者で同じようなテストを実施してしまう。
  • システム開発の委託元の企業やテストチームのマネージャーが、実施するテストの量や範囲を確認できないため、テストの計画を立てることができない。

このような問題に対して、Session-Based Test Management(セッションベースドテストマネジメント)参考5というテスト管理手法が注目されています。この手法では、テストを30分から2時間程度の細かな「セッション」に分割し、セッションごとにテストの目的やテストする機能を定めることで、複数のテスト担当者が同じようなテストばかり実施する状況を回避できます。テスト結果はマネージャーに日々報告され、マネージャーはシステムの不具合がよく発見される機能や発見される不具合の偏りを元に、以降のセッションを随時見直すことができます。また、テストする機能単位や1日単位でのセッション実施数を集計することで、テスト総量や進捗度合も確認できます。

【図】

図2:セッションベースドテストマネジメントのイメージ

NTTデータでは、従来型の「記述式テスト」だけでなく、「探索的テスト」をセッションベースドテストマネジメント手法と組み合わせて用いることで、効果的なテスト方法論の開発に取り組んでいます。

参考文献

著者プロフィール

【写真】

技術開発本部 熊川 一平

大規模金融機関向けシステムにて数年間システム開発を経験。その後、現組織にてテストプロセス改善やテスト自動化の研究開発に従事。社外講演、記事執筆なども行う。JaSST'14 Tokyo(ソフトウエアテストシンポジウム2014東京)ベストスピーカー賞受賞。

お気軽に
お問い合わせ
ください

「探索的テスト」を活用して品質を高めるに関するお問い合わせ

お問い合わせフォーム