歴史
探索的試験
探索的テストは、同時学習、テスト設計、テスト実行として簡潔に説明されるソフトウェアテストへのアプローチです。 1984年にこの用語を生み出したCem Kanerは、探索的テストを「テスト関連の学習、テストデザインを処理することにより、個々のテスターの仕事の質を継続的に最適化する個人の自由と責任を強調するソフトウェアテストのスタイル」と定義しています、テスト実行、およびテスト結果の解釈は、プロジェクト全体で並行して実行される相互支援アクティビティとして実行されます。」
ソフトウェアがテストされている間、テスターは、経験と創造性と一緒に実行するための新しい良いテストを生成することを学びます。探索的テストは、多くの場合、ブラックボックステスト手法と考えられています。代わりに、それを研究した人は、それを開発プロセスのどの段階でも、あらゆるテスト手法に適用できるテスト手法と考えています。重要なのは、テスト手法でも、テストまたはレビューされる項目でもありません。重要なのは、テスターの認知的関与と、テスターが自分の時間を管理する責任です。
歴史
探索的テストは、常に熟練したテスターによって実施されてきました。 1990年代初期、アドホックは、ずさんで不注意な作業と同義語であることが多すぎました。その結果、テスト方法論者(現在はコンテキスト駆動型スクールと呼ばれている)のグループは、「探索的」という用語の使用を開始しました。この新しい用語は、Cem Kanerの著書「 Testing Computer Software 」で最初に公開され、「 Software Testingで学んだ教訓」で拡張されました。探索的テストは、他の知的活動と同様に規律できます。
説明
探索的テストでは、ソフトウェアが実際にどのように機能するかを調べ、困難で簡単なケースをどのように処理するかについて質問します。テストの品質は、テストケースを発明して欠陥を見つけるテスターのスキルに依存します。テスターが製品とさまざまなテスト方法について知っているほど、テストは良くなります。
さらに説明するために、フリースタイルの探索的テストとアンチテーゼのスクリプトテストを比較できます。後者のアクティビティでは、テストケースは事前に設計されています。これには、個々の手順と期待される結果の両方が含まれます。これらのテストは、後で実際の結果と期待される結果を比較するテスターによって実行されます。探索的テストを実行するとき、期待はオープンです。一部の結果は予測および予測される場合があります。他の人はそうではないかもしれません。テスターは、製品とその動作を構成、操作、観察、評価し、結果を批判的に調査し、バグ(製品の価値を誰かに脅かす)または問題(製品を脅かす)の可能性がある情報を報告します。テスト作業の品質)。
実際には、テストはほとんどの場合、探索的テストとスクリプトテストの組み合わせですが、コンテキストに応じてどちらか一方に向かう傾向があります。
KanerとJames Marcus Bachによると、探索的テストは方法論というよりも考え方または「...テストについての考え方」です。また、わずかな探索的(わずかにあいまいな、または漠然とスクリプト化されたテスト)から高度な探索的(フリースタイルの探索的テスト)まで連続しているとも言われています。
探索的テストの文書化は、実行されたすべてのテストの文書化から、バグの文書化のみに及びます。ペアテスト中に、2人がテストケースを一緒に作成します。 1つはそれらを実行し、他のドキュメントは実行します。セッションベースのテストは、より広範な規模で探索的テストを監査可能かつ測定可能にするために特別に設計された方法です。
探索的テスターは、探索セッションの記録としてスクリーンキャプチャやビデオツールなどのツールを使用したり、ジェームズバッハのPerlclipなどの関心のある状況をすばやく生成するのに役立つツールを使用したりします。
利点と欠点
探索的テストの主な利点は、必要な準備が少なく、重要なバグが迅速に検出されることです。また、実行時に、スクリプト化されたテストの実行よりもアプローチが知的に刺激される傾向があります。
もう1つの大きな利点は、テスターが以前の結果の結果に基づいて演ductive的推論を使用して、その場で将来のテストをガイドできることです。彼らは現在の一連のスクリプト化されたテストを完了してから、よりターゲットを絞ったリッチな環境に焦点を当てたり、調査に進んだりする必要はありません。また、インテリジェントに使用すると、バグ検出が加速されます。
別の利点は、初期テストの後、ほとんどのバグが何らかの探索的テストによって発見されることです。これは、「特定のテストに合格するプログラムは同じテストに合格し続ける傾向があり、まだ調査されていない他のテストまたはシナリオに失敗する可能性が高い」と述べることで論理的に実証できます。
短所は、オンザフライで発明され実行されたテストを事前にレビューすることができず(また、コードおよびテストケースのエラーを防ぐことにより)、実行されたテストを正確に示すことが困難な場合があることです。
フリースタイルの探索的テストのアイデアは、再検討された場合、まったく同じ方法で実行されることはほとんどありません。これは、新しいエラーを見つけることが重要な場合に有利です。または、以前のテストの特定の詳細を繰り返すことがより重要な場合は不利です。これは、テスターへの特定の指示で、または実行可能、適切、および必要に応じて、理想的にはできるだけユニットレベルに近い自動テストを準備することで制御できます。
科学的研究
再現された実験により、スクリプト化された探索的テストでは同様の欠陥検出効果(検出された欠陥の総数)が得られますが、テストケースの事前設計に労力が費やされないため、探索的結果はより高い効率(単位時間あたりの欠陥数)になります。探索的テスターに関する観察研究では、ドメイン、テスト対象のシステム、および顧客に関する知識の使用が、探索的テストの有効性を説明する重要な要素であることが提案されました。 3社のケーススタディは、迅速なフィードバックを提供する能力が探索的テストの利点であり、テストカバレッジの管理が欠点であると指摘しました。調査によると、探索的テストは重要なドメインでも使用されており、探索的テストアプローチではテストを実行する人に高い要求が課せられます。
使用法
探索的テストは、要件と仕様が不完全な場合、または時間がない場合に特に適しています。このアプローチは、以前のテストで最も重要な欠陥が見つかったことを確認するためにも使用できます。