0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

新人エンジニアが、E2Eテストについて調べたのでメモ

Posted at

E2Eテストとは

「E2E」は「エンドツーエンド」の略で、その名の通り、システムをユーザー視点で、「端から端まで」テストします。

ユーザーが行いうる操作のシナリオに沿って、ユーザー視点でプロダクトをシミュレーションするのが特徴です。アプリケーションの各コンポーネント(フロントエンド、バックエンド、DBなど)が統合した状態でテストを行うことによって、ユーザーの手元に届くプロダクトの挙動を把握することができるため、非常に信頼性の高いテスト手法です。

多くの場合、テスト自体を自動化して行うことが多いですが、人が手動でテストをすることもあります。手動でテストするのは手間がかかるので、自動化した方がコストが低いように思えますが、システムが複雑化するほど、メンテナンスにコストがかかるため、適切な範囲で実施することが重要です。

E2E以外の「テスト」

ソフトウェアプロダクトのテストには、E2Eの他にも様々な種類があります。ここでは、その概要を確認します。

  • ユニットテスト

ユニットテストは、テストの最小単位で、個々のコードの正しさをテストします。

  • インテグレーションテスト

複数のユニットが連携する部分のテストです。このテストによって、コンポーネント間の相互作用を確認します。

  • システムテスト

システム全体のテストです。E2Eテストと似ているように感じますが、システムテストは、技術仕様書や設計書に基づいて行われ、機能要件と非機能要件の双方をテストします。

  • 受け入れテスト

プロダクトの発注者によるテストです。ここでは、ビジネス要件や契約条件を満たしているかどうかを、プロダクトを導入する側がテストします。受け入れテストも、E2Eと似ているような気がしますが、E2Eは開発者もユーザーもテストを実施する可能性があるのに対し、受け入れテストは、実際のユーザー、つまり発注者によるテストであるという点が、大きな違いです。

Playwrightとは

私が関わっているプロダクトではPlaywrightを利用しています。

Playwrightとは、Microsoftが開発した、E2Eテストを自動で行うためのオープンソースのライブラリです。

“Any browser • Any platform • One API” つまり「あらゆるブラウザ、あらゆるプラットフォーム、1つのAPI」というキャッチコピーを掲げており、複数のブラウザやプラットフォームにおけるE2Eテストを、Playwright1つで行うことができます。具体的には、以下のブラウザ・プラットフォームに対応しています。

  • ブラウザ
    • Chromium
    • WebKit
    • Firefox
  • プラットフォーム
    • Windows
    • Linux
    • macOS

また、ローカルでもCIでもテスト可能で、ブラウザはヘッドレスでもヘッド付きでもテスト可能です。

また、API対応言語は以下の通りです。

  • TypeScript
  • JavaScript
  • Python
  • .NET
  • Java

E2Eテストを行うためのツールには、Playwrightの他にも、Selenium・Puppeteer・Cypressなどがあります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?