web-dev-qa-db-ja.com

システムテストとエンドツーエンドテストの違い

エンドツーエンドテストとは何ですか?また、システムテストとの違いは何ですか?

どちらも同じように見え、アプリケーション全体をチェックします。ネット上の定義は非常に紛らわしいです。

53
a Learner

私にとっては、この2つの間に大きな違いはなく、一部の施設ではこの用語を同じ意味で使用できます。どこでも違います。私はそれを次のように説明しようとします:

システムテスト:あなたはシステム全体をテストするつまり、すべてのコンポーネントが意図したとおりに機能することを確認するためのすべてのコンポーネントです。これは、要件に対してチェックする機能面からのものです。

エンドツーエンドのテスト:これは実際のフローthroughシステムの詳細現実的なエンドユーザーシナリオ。ユーザーが期待どおりにアプリケーションをナビゲートし、機能するかどうか。ワークフローをテストしています。

たとえば、店頭でeコマースサイトをテストする場合:

システムテスト:アイテム、カート、チェックアウトの参照はすべて正常に機能します。

エンドツーエンドテスト:その後、これらの機能領域間を移動するワークフローに問題がある場合があります。

40
Scott Helme

エンドツーエンドテスト-エンドツーエンドテストは、基本的にまったく同じように聞こえます。最初から最後までソフトウェアをテストしています。たとえば、eコマースプラットフォームの場合、製品ページにアクセスしてカートに追加し、チェックアウトして注文を完了できることをテストします。アプリケーションの場合、メニューから項目を選択し、何らかの作業を行ってから、それを送信して他の人に見えるようにすることができます。基本的には、機能チームが新しい開発を吟味し、実装中にフロントエンドまたはバックエンドで何かが壊れていないことを確認するための単なる方法です。

システムテスト-これはもう少し曖昧です。これは、Webサイトのバックエンドデータベースをテストする人、フロントエンドUIまたは中間層をテストする人である可能性があります。これは、基本的に(主に)狭い焦点を絞ったサイロ化されたテストであり、サービスの個々のコンポーネントが、開発作業が行われる前に通常配置される要件に従うことを確認するように設計されています。これは「統合テスト」とも呼ばれます。

20
Brian

私は同意しません。私にとって、これらの用語は簡単に言えば:

システムテスト:自分のシステムが期待どおりに動作するかどうかを確認します。たとえば、eコマースサイトの場合:顧客がチェックアウトを行うと、正しいデータがウェアハウス(他の誰かが所有している)に送信されます

End To Endテスト:上記のように、実際のワークフロー。誰かが商品を買い物かごに入れて、ユーザーデータを入力し、支払います。実際に支払いを受け取ったかどうかを確認し、倉庫に電話をかけて、データを受け取ったことを確認します。そして、パイの小さな桜:小包を受け取ることで、特に私の本当の名前がPavel Janíček(面白い発音区別符号を参照してください?それらは時々間違って印刷されます)。

そして、ここであなたは、あなたが期待通りに交渉してデータを送信したとしても、あなたは側に沿ってどこかに問題があるかもしれないことに気付きます

14
Pavel Janicek

答えは違いを説明するのに適しています。エンドツーエンドテストの2つの異なる定義に遭遇する可能性があることを付け加えます。1つverticalと1つhorizo​​ntal(より頻繁で、回答に記載されています):

enter image description here

8
Andrejs

統合システムのテスト:さまざまなシステムコンポーネントがすべて、正確な予想結果を詳細に提供する場合にテストされます。

エンドツーエンドのテスト:アプリケーション全体が最初から最後までテストされ、顧客から見たときに満足できるかのようにテストされます。

4
axis

エンドツーエンドテストとシステムテストの比較は、果物と色を比較するようなものです。エンドツーエンド(E2E)テストは「テストタイプ」であり、システムテストは「テストレベル」です。つまり、E2Eテストは常にシステムテストですが、システムテストは必ずしもE2Eテストではありません。

E2Eテストは非常に機能しないテストですが、E2Eテストで検証できる機能仕様は確かにあります。 E2Eは通常、機能システムテストの実行後に行われます。ユーザー受け入れテスト(運用環境)、探索的テスト(QAまたはステージング環境)、および実際の使用を模倣しようとする環境でSUTを実行するその他の状況は、システムレベルのテストが実行される可能性がありますが、E2Eテストになります非開発環境(開発環境など)で。しかし、それは開発者がE2Eテストを実行できなかったという意味ではありません...テスト用語の性質により、業界はまだ標準を見つけ出し、特定しようとしているため、これに答えることは困難です。

1
Kaman Poole

これら2つの最も重要なテストの角度は少し異なります。

エンドツーエンドのテスト:私の観点では、エンドツーエンドのテストは、アプリケーションユースケースの完全なワークフローをカバーすることです。ユースケースのエンドツーエンドのフローを完了するには、他の個々のアプリケーションのテスト(少なくとも「要求と応答の検証」などの相互作用)もカバーする必要があります。例えば。 eコマースアプリケーションのエンドツーエンドのフローを使用している場合、アプリケーションの最終ステップは、支払いを行うためにユーザーを支払いゲートウェイに連れて行くことです。現在、支払いゲートウェイ統合機能の要求と応答のテストは、システム統合テストまたはエンドツーエンドテストの一部です。

システムテスト:システムテストの範囲は、アプリケーションのすべての機能の検証のみに限定されます。

それが私の見解です。どんな修正も大歓迎です。

0
abhiqa