そこにあるいくつかの広範な質問は、私の経験に基づいて答えようとします。
テスト ハーネスは、(1) (2)テスト ライブラリを使用したテストの実行、および (3)レポートの生成のすべての作業を実際に行う「イネーブラー」と考えてください。テスト スクリプトは、異なる (4)テスト データと (5)テスト シナリオを処理するように設計されている必要があります。基本的に、テスト ハーネスが配置され、前提条件となるデータが準備されると (データ準備とも呼ばれます)、誰かがボタンをクリックするか、1 つのコマンドを実行して、すべてのテストを実行し、レポートを生成できる必要があります。
テスト ハーネスは、ほとんどの場合、上記のすべてを実現するさまざまなものの集まりです。アプリケーションの開発中に単体テストを作成した場合、それはテスト ハーネスの一部になります。また、ユーザーがサイトにログインしたり、お気に入りペインが表示されたり、最近のメッセージや通知が表示されたりするなど、アプリの機能について他のテストを行うこともできます。次に、すべての「テスト スクリプト」を通過して実行する種類の「ランナー」を追加します(一度に 1 つずつテストを実行する必要はありません)。テスト ハーネスが単一のソフトウェアではなく、概念的なコレクションのように感じられる場合は、これを正しく理解しています :-)
私の質問は、テストケースとテストスクリプトの違いは何ですか?
単純だが完全に正解ではない:テスト ケースは、テストの目的、説明、前提条件、手順 (説明的または具体的)、期待される結果を定義します。テスト スクリプトは、そのテストを実行するために実行する実際の自動スクリプトになります。これはオートメーション コンテキストにあります。そしてそれは変わります。多くの。
ISTQB などの認定がテスト シナリオとして定義するものは、通常、一部の企業や国ではテスト ケースと呼ばれます。また、手動テストを参照する場合、テスト ケースはテスト スクリプトで反転されます (ステップが詳細に示されているが、自動化ハーネスの一部ではない場合)。また、テスト スクリプトはもっぱら自動化されたテストを意味すると言う人もいます。一方で、1 つのテスト スクリプトで複数のテスト ケースを組み合わせることができ、その逆も可能であると主張することもできます。そこで疑問が生じます。テスト手順はどのように適合するのでしょうか?
テスト開発ステージには、「ソフトウェアのテストで使用するテスト手順、テスト シナリオ、テスト ケース、テスト データセット、テスト スクリプト」を含めることができます。
> (より大きい/コレクションの)関係を想定する場合、それらをどのように関連付けますか? 修辞的な質問 - あなたが働いている場所、クライアントが誰であるかなどによって異なります。最良の方法は、同僚/クライアントと定義し、定義ではなく用語の理解に同意することです. 私は現在、既存の手動テスト ケースまたはテスト シナリオに基づいて、テスト スクリプト = 自動スクリプトを使用しています。
また、AUT のさまざまな機能をテストするためにソフトウェアをどのように使用しますか?
さまざまなことをテストするために、さまざまなテストを作成します。各テストは特定のアクションを実行し、AUT の出力が期待したものと一致するかどうかを確認しますIf displayed_value == expected_value
。たとえば、入力ファイルを使用して、テスト用のユーザー名とパスワードのテスト リストにデータを提供できます。または、異なるデータで同じテストを実行します - 異なるメッセージで別のユーザーとしてログインするなど。
RobotFrameworkとSeleniumを見てください。Selenium ライブラリと組み合わせたロボット フレームワーク テスト (テキスト ファイルまたは html ファイルで記述) を使用すると、特定の何かをテストする自動化されたテストを作成できます。たとえば、ホームページの検証などです。ユーザーがすべてのメッセージを表示できるようにするには、別のテストを作成します。通知のクリアをテストするための別のもの。等々。