また、シナリオテスト(シナリオテスト)との違いは何ですか
この投稿は、James Bachによる記事の翻訳です。探索的テストとは何ですか? これは、 http://www.satisfice.comのサイトからのバッハによる一連の研究テストとそれに関連するすべての記事からの最初の翻訳です。 翻訳の誤りや用語の誤りを見つけた場合は、記事へのコメントで報告してください。
研究テストは強力で楽しいテスト手法です。 場合によっては、通常のシナリオテストよりも生産的です。 少なくとも無意識のレベルでは、研究テストを適用しないテスターにはまだ会っていません。 それにもかかわらず、このアプローチを詳細に研究した人はほとんどおらず、私たちの分野ではまだそれほど認識されていません。 今こそ、それを否定するのをやめ、研究アプローチをそのまま、つまり科学的思考をリアルタイムで公に認めるときです。 友人、これはクールなことです!
並列設計とテスト実行
研究テストの最も簡単な定義は、テストの開発と実行を同時に行うことです。 シナリオアプローチの反対側(手動または自動にかかわらず、事前定義されたテスト手順) シナリオテストとは異なり、研究テストは事前に定義されておらず、計画に厳密に従って実行されません。 簡単に聞こえますが、実際にはすべてが非常に霧がかかっています。 これは、「特定の」とは、すべてを厳密に修正することを意味しないという事実によるものです。 すべてのテストシナリオが慎重に定義されている場合でも、多数の興味深い詳細(たとえば、キーボードですばやく入力する方法、エラーとして認識するプログラムの動作の種類)の操作は、テスターの裁量に任されています。 さらに、無料形式の検索セッションであっても、テストには製品のどの部分をテストするか、どの戦略を使用するかという制限が含まれます。 優れた研究テスターは、テストのアイデアを記録し、その後のテストサイクルで使用します。 このようなメモは、たとえそうでない場合でも、テストスクリプトに非常によく似ています。 研究テストは、アドホックテストと混同されることがあります。 アドホックテストは、通常、即興のプロセス、エラーの即興の検索を指します。 定義により、誰でもアドホックテストを実行できます。 「コンピューターソフトウェアのテストでCem Kanerが作成した」「研究テスト」という用語は、アドホックテストに対する思慮深いアプローチを指します。 過去10年間、James Whittaker、Sem Kaner、および私は、研究テストを効果的に使用するためのスキルとテクニックを特定するために取り組んできました。 たとえば、研究テストプロセスは完全に定義および定式化されています。MicrosoftのWindows 2000 Compatibility Certificationプログラムの一般的な機能および安定性テスト手順を参照してください。
探索的テストとシナリオテストのバランス
実行する次のすべてのテストが前のテストの結果に基づいて選択されている場合、これは研究テストを使用することを意味します。これらのテストを作成します。つまり、テストを作成するという考えは私たちには思いもしませんでした。 シナリオに従って、最適なテスト戦略を提供する新しい情報が表示された場合、検索モードに切り替えることができます(詳細な検討が必要な新しいエラーを検出する場合など)。 一方、1)チェックする方法の不確実性が小さい場合、2)新しいテストは比較的重要ではない、3)これらのテストを実行する際の効率と信頼性を確保する必要がある場合は、同様のテストで作業する価値があります4 )テストの作成と維持に料金を支払う準備ができています。
研究テストの結果は、シナリオテストで得られた結果と必ずしも根本的に異なるわけではなく、これらのテストアプローチは両方とも完全に互換性があります。 通常、NortelやMicrosoftなどの企業は、同じプロジェクトで両方のアプローチを使用しています。 ただし、2つのアプローチには多くの重要な違いがあります。
なぜ研究テストを行うのですか?
効果的な研究テストサイクルの管理で最も議論されているトピックは、テスター、テスト戦略、およびレポートです。 テストのシナリオアプローチは、テストデザイナーの頭からアイデアを引き出して紙に提示するときに、テストプロセスを機械化する試みです。 同様のテスト方法は非常に便利です。 しかし、研究アプローチを使用しているテスターは、テストシナリオを記録し、それに従ってテスターを「鈍らせる」ため、重要な問題をすばやく見つけることができません。 テストを賢くすればするほど、アプリケーションを正しくテストし、時間通りに管理できる可能性が高くなります。 これが研究テストの力です。このプロセスの豊かさは、想像力の広さと深さ、そしてテストされたアプリケーションの性質の理解によってのみ制限されます。
シナリオテストはそのニッチを占めています。 効率性と再現性が非常に重要であるため、スクリプトを作成したり自動化したりする必要があるテストの状況を想像できます。 たとえば、構成されたサーバーが少数であり、それらを開発チームとテストチームに分割する必要があるクライアントサーバーアプリケーションの場合など、テストプラットフォームが定期的に利用できない場合。 常識的に言えば、割り当てられた時点でテストを実行する際にテストスクリプトを最大限に活用するには、事前にテストスクリプトを慎重に作成する必要があります。 探索的テストは、製品についてほとんど知られていない複雑なテスト状況で、または一連のテストスクリプトの準備の一部として特に役立ちます。 基本的なルールは次のとおりです。探索的テストは、次のテストが明らかでない場合、または明白なものを超えたい場合に使用されます。 私の経験では、これはほとんどの場合に起こります。