Exploratory Software Testing (探索的ソフトウェア テスト)

Bing ジェームス Whittaker は、Microsoft のパートナーに開発マネージャーです。 Mallory は、Google Chrome マップの Web アプリケーションをテストする必要がある Google に前のエンジニアリング ディレクターです。 ジェームス World をテストすることから、よく知られて名前の 1 で、ソフトウェアのテストに複数のベストセラーを書きました。 Mallory は、人気 MSDN のブログでホストします。

2012 年 7 月

このトピックでは、以下の本の抜粋です Exploratory Software Testing: Tips, tricks, tours and techniques to guide test design

対象

アプリケーション ライフサイクル管理、Visual Studio、TFS

探索的テストの目的

テストするために探索的テスト–の計画

アジャイル チームの探索的テスト

探索的テスト計画はされたスクリプト化されたテストと共存できます

シナリオは、検索を基づいて

探索的テスト概要

探索的テストでは、テスト担当者は、アプリケーション方法が反応するように指定した情報が必要な場合、を使用するアプリケーション全体をに変更し、無制限について一般に、アプリケーションの機能を操作する場合があります。 一部に特別に表示される巧みな、経験の探索的テスト担当者の多くの場合、この方法は強力検証できます。 支持者は探索的テストを人間の脳の完全パワーがバグを発見、予期された無制限で機能を検証することで発揮できるようにします。

探索的テストの欠点は、テスト担当者がバグを発見ことをテストに検索しよう、アプリケーションの周囲にさまよう大量の時間を浪費を安全に公開することです。 準備、構造体、およびガイダンスの原因は、多くの非生産的な時間と同じ機能を何度も再テストすることになる場合があります。 1 つが簡単に完全にアドホック テストを明確にテストするとする最適な方法でないことを確認できます。 入力、ソフトウェア環境およびテストの実行中に変更できる他の条件について学習テスト担当者は、機能は、オフになります目的と、その意図を使用して各自のアプリケーションを調査します。 この知識がより効率的に、スマート テストし、重大なデザインと実装の欠陥が見つかることができるしたりできます。

探索的テストの目的

  • To gain an understanding of how an application works, what its interface looks like, and what functionality it implements: は、プロジェクトに新しいテストのエントリ ポイントを指定し、特定のテストの問題を識別し、テスト計画を作成、またはテスト担当者は、このような目標採用されます。 これは、テストのニーズの深さを理解し、新しい非踏査の検索機能をアプリケーションを調査するため、経験のテスト担当者によって使用される目標です。

  • To force the software to exhibit its capabilities: は、およびの概念に、し、オプションを設定することによって、難しい質問するには、ソフトウェアをに設定することです。 バグを検索または特定に設定されるソフトウェアがデザインされた、その要件を満たす関数を実行する証拠を提供します。

  • **バグを発見するには:**アプリケーションの終了を調べて、潜在的な弱点を叩く、探索的テストを特に行います。 目標は、これという目的がなく、検索ではなくデザインでは、テストされていないため、これまでおかしな機能を識別します。 探索的テスト担当者がバグで単につまずく必要ではありません。目的および目的を持つ 0 個以上にする必要があります。

テストするために探索的テスト–の計画

ソフトウェアのテストは、入力とコード パスと操作環境からの変更の可能性のオーバーロードによって、メモリ データ表示する複雑になります。 実際にテスト計画を記述する場合、計画、インターリーブ テストすることのできる探索の方法により、テストの実行前にこの変更に対応するために、1 種類を選択するかどうかは不可能なタスクです。 最後にをテスト しても、それを完全にするには、単にがきわめて複雑です。

ただし、テストし、実際のテスト方法に影響するテスト中に収集された情報を使用すると、実行するテストを計画するように図ること、探索テクノロジに利点があります。 これは意図最初にメソッドの主な利点があります。 季節の前にスーパー ボールかの必ずプレミア リーグを予測することをお Imagine 始まります。 これは競合関係をどのように処理するかどうか、およびまでは重要傷害を回避する方法がチームの再生中かを確認する前にすることは困難です。 季節が正確で任意の数の結果の予測に保持キーを開くときに入力した情報。 これは、ソフトウェアのテストのコントロールであり、探索的テストはテスト中に発生したすべての完全な知識と現在の情報ルーティングされる小さい進行中のインクリメントで計画、テスト、計画、およびしようとすると、これをソフトウェアの動作に関する実行する糸口として信頼できるか。

アジャイル チームの探索的テスト

探索的テストは、アジャイル メソッドを使用して、最新 Web アプリケーションの開発に適しています。 開発サイクルは正式なスクリプトの作成と保守のほとんど時間を保持する short です。 機能は、すばやく配置するため、依存アーティファクトを最小化すると (事前準備したテスト ケースなど) と属性です。 テスト ケースに関係がないことになる可能性がある理由はそれらの XML を記述しますか。 独自の設定でなく、実際にテストをより多くの時間でのテスト ケースを使用するかについて。

(Visual Studio および TFS の探索的テストのアジャイル ツールの例については、Microsoft Test Manager を使用した探索的テスト探索的テスト ウィンドウを使用したデバイス上で実行されている Windows ストア アプリのテストMicrosoft テスト マネージャーでのテストの実行"を参照してください)。

探索的テスト計画はされたスクリプト化されたテストと共存できます

スクリプト ベースの手動テストに厳密な代替手段として探索的テストを表示する必要はありません。 実際、2 が大幅に適切に共存できます。 仮スクリプトの構造を提供されている場合は、フレームの検索に探索のメソッドは、有効性を増幅するスクリプトにバリエーションの要素を追加できます。 第 2 の方法をまとめると、次に検索最適な方法は、正式なスクリプトから開始し、変更の挿入に探索のテクノロジを使用することです。 この方法は、実際の探索的テスト ケースの任意に、一つのスクリプト変換を終了することがあります。

これで、実際のユーザーが実行する必要がある従来のスクリプト ベースのテストするか、ユーザー ストーリーの開始点またはを文書化したエンド ツー エンドのシナリオでは、通常、あります。 これらのシナリオでは、ユーザー Research、アプリケーションの以前のバージョンのからデータなどのため、スクリプトとしてソフトウェアをテストするために使用されます。 従来シナリオの探索的テストに追加された要素には影響、検索、およびオプションでユーザーのパスを挿入するスクリプトの範囲を広げます。

シナリオは、検索を基づいて

シナリオベースの検索は、単純なシナリオでテストがさらに正確に、主要なシナリオから外れる実際のユーザーをまねないするケースを処理します: 最終的に、製品は多くのバリエーションを割り当てます。 これは、それらが機能することをテストする必要があります。だけでなく、それらを使用して取得する必要があります。

シナリオベースの探索的テストの背後によって、荒野などのよく知らない地勢を通じて自身をルーティングするために実際のエクスプローラーがマップを使用するため、既存のシナリオをより使用することです。 シナリオは、マップなど、一般的なガイド テスト中にします。スキャンするように選択するパスを入力ではありません。絶対コードを必要とします。 は、マップの終了位置を記述するために到着複数の方法を提供する可能性があります。 同様に、探索的テスト担当者はシナリオを実装すると迂回パスを提供し、可能ファイルのパスの広いスコープを検討することを推奨します。 実際、探索的テストでこのフォームの正確な目的です: できるだけ多くの変化を追加するシナリオで説明する機能をテストする。 このトピックの "" マップは近道、それを識別するために 多くの ルートを検索しようとしたものではありません。 これができる場合も、より優れたのテストしても; これはより多くの作成をおの予測し、から逸脱するユーザーの取得にある場合は、ソフトウェアがシナリオを確実に実行します。

一般に、便利なシナリオは次の一つ以上を実行します:

  • ユーザー ストーリーを通知します

  • 要件を記述します。

  • 機能の動作を示します。

  • 統合のシナリオを表示]

  • セットアップとインストールを記述します。

  • うまくいかないことができること、および対策を記述します。

探索的テスト担当者が確実にハードに動作します。これらすべてのカテゴリから、できるだけ多くのシナリオを収集できます。 これは、それだと考えるように、シナリオに従って、変更を挿入するためのタスクです。 これは、このタスクを次に、サブジェクトの実際の場所に探索する回転、このバリエーションを挿入するためには、でを選択するかです。

(Visual Studio および TFS のアジャイル ツールを使用して探索的テスト使用例については、方法: Microsoft Test Manager で探索的テスト セッションを開始するを参照してください)。

探索的テスト概要

ロンドン、一番最初の英国など大、都市を参照しているとします。 これは、表示される項目の多くを持つ新しいツーリストの大、中で、複雑な場所で。 実際にロンドンを提供する必要があるように、最も高度に、すべてを参照するほとんどの時間制約のないツーリスト困難と都市があります。 はと同じ機能は、っているテスト担当者の複雑なソフトウェアを調べることを指示できます; 世界のすべてのリソースは完全性が保証されます。

観光作業は、構造体と自由の組み合わせを利用するため探索的テストを実行します。 これは、とだけでテストするフリースタイルより完全に構造体は一つの検索に追加し、この例のアプリケーションによってこれを取得するのに役立つ多くの概要メタファがあります。 大規模なテスト方法に合わせて正確に判断従来のシナリオベースのテストの概要と、これらの多くは、ツアーを整理する方法、まとめられ。

テスト計画のすべての説明で処理できる場合よりも小さい部分にソフトウェアの分解で始まる必要があります。 ただし、テスト機能は個別に機能が相互に対話する場合にのみ発生するバグを発見除外する場合があります。 さいわい、ツーリスト メタファは、このような分解を持続しません。 代わりに、テスト対象のアプリケーションのすべての一意の構造ではなく 意図 に基づいて逆アセンブリを提案します。 できるだけが急に時間をできるだけが表示されるように意図を持つユーザーの休暇にアクセス ツーリストしたがって、テスト担当者のように、SEH をたどる整理します。 実際のツーリスト表示するには、走査するランドマーク、サイトの組み合わせを選択し 特定の操作を実行することを明確とソフトウェアの機能を組み合わせるためにテスト担当者は、を選択します。 この目的は、多くの場合は、に厳密な機能のテストのモデルで動作している場合ではない方法でまとめられるするアプリケーションの機能をいくつでも必要です。

ガイドブック ツアー

ツーリストのガイドブックはあまりに入力するか、または多すぎるオプションとツーリストが過負荷せずに最適なホテル、最適な署名、および上に魅力指定します。 探索的テストのようなアーティファクトは (ほとんどのヘルプ システムへのショートカットを表示する次に、これを F1 ツアーで 呼び出す場合) オンライン ヘルプとして出力されるか、または実行されたか、ユーザー マニュアルです。 この概要については、リーダーでは変わらないによって慎重なツアー者などのユーザー マニュアルのアドバイスに、います。

Money ツアー

ツーリストを切望する任意の位置が到着するこれらのある正当な理由がある必要があります。 ラスベガスの場合、カジノとストリップであり、エジプト用ピラミッドです。 探索的テスト担当者も費用を検索販売フロントエンドへのリーダーを直接利用できます。 販売のユーザーがアプリケーションのデモを与える大量の時間を開き、Money ツアーの素晴らしい情報源です。 ツアー、単に実行独自のデモを使用し、問題を検索します。 製品コードはバグ修正、新機能のように変更すると、だけでなく、大きなバグを中断して、きわめて深刻な迷路からの販売フロントエンドを検索することを考慮に保存することになることがあります。

ランドマーク ツアー

ケンタッキーのフィールド、および meadow 森で拡張する男の子として、私は、担当の古い兄弟の監視によってコンパスを使用するように学びました。 この処理は簡単です。 ユーザーが移動する方向のランドマーク (ツリー、石、崖サーフェイスなど) を特定するためにコンパスを使用し、ランドマークに、の方法を行い、次のランドマークなど、検索します。 ランドマークが同じ方向のすべての限り、ケンタッキーの度合いが高い森の更新プログラムを使用して、自分を取得できます。

探索的テスト担当者の ランドマーク ツアーは、フォレストを通じて。これは、ランドマークを選択し、ソフトウェアを通じて同じランドマークのホッピングを実行する似ています。 、リストのすべてを参照するまで一連のランドマークを選択し、の順序で決定し、ランドマークからランドマークに進むアプリケーションを調査します。 追跡します。ランドマークがランドマークの適用範囲のマップを使用し、進行状況を追跡するために作成する。

知的な概要

私は、ガイドがすべての自分の有効期間がロンドンに追加するには、最初に要求した自分の五十時系列の紳士のロンドンの検索と同時に発生しました。 ツーリストは、英語の履歴であり、継続的に認識することが難しいガイドの質問を成績したことを発生しました。 Mallory は、急な動きであることを意味していませんが好奇心が厳密に、ガイドに危険な組み合わせであることの上部で、…、少なくとも終了の知識とまとめました。 探索的テストに適用すると、この概要は ソフトウェアに難しい質問することの方法で受け取ります。 これは、ソフトウェアをできるだけにに設定しますか。 制限にどの機能を拡張しますか。 何も入力し、データにも、処理を実行するか。 エラーをチェックする検証ルーチンが欺かれることがありますか。 すべての入力と内部データが特定の出力を生成する機能に重点を設定しますか。

新た Express ツアー

パッケージは、連邦 Express 付属の世界のアイコンです。 これらは、パッケージを受け取り、さまざまな配分センターの周囲に実行し、最終的な仕向的に送信します。 新た Express システムを使用して惑星を実行するパッケージの代わりにこの概要では、データを移動するソフトウェアについて検討します。 この概要では、テスト担当者がこのデータにローカライズする必要があります。 格納されている、"従います。ソフトウェアの周囲に" 入力を識別しようとした。 たとえば、アドレスはショッピング サイトに入ると、どこで表示または取得します。 どの機能がこれを実行しますか。 これが請求先住所として使用される場合、使用する手法確認します。 これが配達先住所として使用される場合、使用する機能に確認します。 更新可能な場合に、それを更新します。 また、は、パージしたり、処理されている出力されます。 Express は、連邦パッケージを処理するため、データのライフ サイクルのどの段階に関連するようにデータに接するすべての機能を検索してください。

ガベージ コレクターの概要

縁石側のガベージ コレクションを収集するには、ようにどおりによって移動し、Home して格納し、変更のすべての隆起を理解しているため、隣接するソフトウェアと優れて警察を習得できます。 ただし、急いでいるため、1 か所に長時間にとどまりません。 ソフトウェアの場合、これは体系的なスポット チェックに似ています。 また、スポットにチェックするマニフェストの要素をかを確認することをおが画面上、ダイアログ (ガベージ コレクター、近道のように、サポートする)、および停止によるダイアログで詳しくテストするインターフェイスもできます。決定できない場合 (スーパーモデル ツアーなど)。 また、もモジュールによって機能、モジュールの移動に機能や、特定のアプリケーションに対して意味がある他のランドマークによって、このツアーを使用できます。

隣接してツアー

の必要があるすべての都市にアクセス ツーリスト不適切な場合には避けるように指示すると、隣接領域があります。 ソフトウェアに、コードの隣接これらのセクションがバグにしていて、不適切な場合があります。 当然ながら、が隣接を表すする機能が高いため、先立っていません。 ただし、バグが報告されると、このバグの数の特定の機能を接続しても、バグが、の製品に箇所を追跡できます。 バグの収集が多くなるため、製品のおかしなセクションを見直すことは、の値を持つツアー取得です。 実際には、一度おかしなコードのセクションでは、推奨されますが新しいバグ修正が生じないことを確認します。に似た機能を通じてガベージ コレクターの概要を受け取るとして識別されます。

博物館ツアー

古さを表示博物館はツーリストのお気に入りです。 コード ベースの古応答は同じ種類のテスト担当者からの値に注意します。 この場合、ソフトウェアの古応答はレガシ コードです。 変更を行うか、新しい環境に入る古いコード ファイルが生じやすくなる失敗な傾向があります。 低いときの元の開発者長い移動およびドキュメントによって頻繁にレガシ コードは (通常はだれ書き込み新しいコードに対してだけがテスト)、確認することが困難に変更しにくく開発者の単体テストの NET を回避できます。 このトリップ中に、テスターは古いコードを識別し、実行可能アーティファクト確認するテストの興味のある公正な分を受け取り、取り消し。

"戻る"経路ツアー

多くの開発者の目では、優れたツアーは、一般的な場所を参照する 1 とおりです。 これらの反対ですが、だれも移動するには、暫定的場所にアクセスする 1 個ツアーします。 探索的テストの用語では、これらを使用するユーザーに最も魅力的な物とまれな機能です。 組織の追跡が機能を使用する場合に、このツアーは、一覧の下部のものをテストするようになります。 組織内でコード カバレッジを追跡する場合は、この概要は引き続き隠されるするコードをテストする方法を検索するには懇願します。

全体 Nighter ツアー

(*殴るツアーは、*遅延外側に表示され、ナイトスポットにヒットそれらのユーザーのため、この 1 です。 次のキーは 終夜です。 全体 Nighter ツアー の探索的テスト担当者がアプリケーションを閉じずに動作します。 これらは、ファイルを開く、それら近くない。 多くの場合、効果をリセットする可能性を回避するために発生する時間を節約する変更を保存することを迷惑を掛けません。 これらは、リモート リソースに接続し、にドロップします。 これらのリソースがすべて定数使用している間、他の概要を使用してソフトウェアの処理とナビゲーション データを続行するようにテストを実行する場合があります。 これがあり、場合は、ソフトウェアが再起動されたときにそのクリーン リセットが拒否されるため、他のテスト担当者はバグを発見可能性があります。

スーパーモデル ツアー

この概要では、私は、表面的に検討する必要があります。 とは関係なく、スキンが成功するたびにします。 この概要は、関数または物質ではありません; また、外観と最初の印象について説明します。 スーパーモデル トリップ中に、フォーカスは機能または実際の相互作用にありません。 このクラスは、インターフェイスにのみ存在します。 ツアーを受け取り、インターフェイス要素を参照してください。 これらは、" "を参照してください。 これらは正しく表示し、パフォーマンスが優れていますか。 変更を加えると、GUI の更新が正しくか。 このテスト、または画面である見苦しいアーティファクトあるか。 ソフトウェアが意味を持つ方法で色を使用する場合は、一貫していますか。 GUI パネルはいると、意図したボタンとコントロールによって内部的に一貫しているか。 インターフェイスは、または標準規則に違反しますか。

カウチのポテト族ツアー

使用されないツアー グループに 1 人が常にです。 Mallory は、既定で ARM を使って元に立ちます。 Mallory は、最初の概要の理由支払いを迷惑を掛けたか、unenergetic なくし、1 種類の驚異になります。 コーチのポテト ツアーは、 できる限り実績作業時間としてすることを意味します。 これは、フォームのデータとしてのすべての既定値 (アプリケーションであらかじめ用意されています) を意味し、入力フィールドを空白のままにして、広告を受け取ることができるようにフィル クリックし、などのボタンをクリックするか、データを入力せずに画面を使用してページを開きました。 アプリケーションの移動方法のオプションを 1 回または別のポテト コーチの場合は抵抗が最小のパスを常になります。

強迫性ツアー

OCD のテスト担当者は、同じ入力を何度も入力します。 これらは同じアクションを何度も実行します。 これらは、ほとんどすべてを繰り返し、やり直してから、/LTCG、コピー、貼り付け、日、次にします。 ほとんどの場合、ゲームの名前は、です。 複数の購入割引を適用した場合は、ショッピング サイトの項目の順序を指定し、チェックするように求める順序します。 画面のあるデータを入力し、そのグループに再び入るときにすぐに返されます。 これらは、開発者が頻繁にない場合、プログラム エラーの処理です。 これらは重要な破棄を生成するです。

開発者は、特定の順序で処理を実行し、目的のソフトウェアを使用するユーザーの場合を考えています。 ただし、ユーザーは間違え、追跡し、特定のパスが開発者には対応する場合に使用した、自分のを取得またはよく理解されません。 これにより、すぐに落伍する慎重に使用する開発者によって設定された設定が発生することがあります。

テストは複雑ですが、調査用の有効な使用方法は、複雑さが高品質なソフトウェアを開発に関与する飼いならされたすることができます。

参照

その他の技術情報

方法: Microsoft Test Manager で探索的テスト セッションを開始する

方法: 探索的テスト セッションから新しい手動テスト ケースを作成する

Microsoft Test Manager を使用した探索的テスト