私はセレンが初めてで、ファズテストも行っています。Selenium IDE では、固定されたテスト ケースのみが許可されているようです。しかし、ファズ テストが役立つようです。
ファズ テストの背後にあるもの、Selenium が提供するテストの種類は、ブラック ボックスまたはホワイト ボックス テストです。
どんな助けでも大歓迎です。
短い答えの場合:
長い答えについては、以下を参照してください。
この投稿では、Selenium RC を使用して Web アプリケーションをランダムにテストするという概念について説明しようと思います。
通常、Selenium のようなブラックボックス テスト手法を使用すると、
基本的にあなた
すべて (すべての変数の可能な組み合わせによって構築されたプログラムのすべての状態) をテストすることは、理論上でも不可能であることに注意してください (たとえば、文字列を解析するために使用される小さな関数をテストすることを検討してください。その場合、文字列にはいくつの可能な値がありますか?) . したがって、実際には、リソース (時間、お金、人) が限られている場合、Web アプリケーションの「最も重要な」実行パスのみをテストする必要があります。パスは、(a) 頻繁に実行される、(b) 仕様からの逸脱が重大な損失を引き起こすという、より多くのプロパティを持っている場合、より「重要」と呼ばれます。
残念ながら、アプリケーションのすべてのユース ケースを記録し、最も頻繁に使用されるものを選択しない限り、どの実行ケースが重要であるかを知ることは困難です。これは非常に時間のかかるプロセスです。さらに、少なくとも実行されたユースケースのいくつかのバグでさえ、それがセキュリティ ホールである場合、多くの問題を引き起こす可能性があります (たとえば、ある PHP ページの URL 処理に小さなバグがあると、誰かがすべての顧客のパスワードを盗むなど)。
そのため、何かを実行してすべてをスキャンすることを期待して、テスト スペース (つまり、これらのユース ケースで使用される値のスペース) をランダムにスキャンする必要があります。これはファズ テストと呼ばれます。
Selenium RC を使用すると、すべてのフェーズ (1)、(2)、および (3) を簡単に実行できます。Java、PHP、CSharp、Ruby、Perl などのサポートされている言語でプログラミングを行うことにより、任意の実行ステップで任意のフィールドの任意の値をテストできます。 、パイソン。
以下は、これらすべてのフェーズ (1)、(2)、および (3) を実行する手順です。
とはいえ、ファズ テストは、限られた実行時間の後にアプリケーションのユース ケース値の空間全体をスキャンするのに役立ちます。「Microsoft Internet Explorer、Microsoft Word、Microsoft Excel などの一般的なクライアント側アプリケーションに影響を与える新たな脆弱性が次々と出現しています。これらの脆弱性の大部分は、ファジングによって発見されたものです」
しかし、ファズ テストには欠点がないわけではありません。その 1 つは、これらすべてのランダム性が与えられたテスト ケースを再現する機能です。ただし、次のいずれかを実行することで、この制限を簡単に克服できます。
Seleniumがブラックボックスかホワイトボックスかについてさらに答えるには。
ブラックボックスとホワイトボックスの定義
しかし実際には、すべての入出力ペアを実行することも、すべての実行パスを実行することもできません。
Selenium の場合: 値を入力するか、Web アプリケーションで特定のクリックを行うことでユーザーを模倣し、ブラウザーが目的の動作を提供するかどうかを待ちます。Web アプリケーションの内部機能が実際にどのように機能するかを知りませんし、気にしません。これが、典型的な Selenium テストがブラックボックス テストである理由です。