Synthetic テスト:わかりやすく解説
「Syntheticテスト」という言葉を何度も耳にしたことがあるでしょう。特に監視プラットフォームを販売しているSaaS企業に関わったことがあるならなおさらです。
しかし、ここで問題なのは、どのベンダーも「Syntheticテスト」の説明が曖昧で、まるで混乱を利用して利益を得ようとしているかのように感じられることです(正直に言うと、たぶんその通りです)。
例えばDatadogの場合、こんな説明をしています:
Synthetic テストでは、世界中からのシミュレートされたリクエストとアクションを使用して、システムとアプリケーションがどのように実行されているかを観察できます。Datadog は、バックエンドからフロントエンドまで、さまざまなネットワークレベル (HTTP、SSL、DNS、WebSocket、TCP、UDP、ICMP、gRPC) で、制御された安定した方法で Web ページと API のパフォーマンスを追跡します。障害のある動作 (リグレッション、機能の破損、応答時間の長さ、予期しないステータスコードなど) を警告します。
なるほど、Datadogさん、良いイントロですね。でも…そもそもSyntheticテストって何でしょう?
マーケティング担当者の混乱を招く説明(彼らは自分が売っているものを本当に理解しているかのように振る舞う)とはおさらば。この記事では、Syntheticテストを簡潔に解説します。
Syntheticテストの核心:自動化
Syntheticテストの本質は自動化です。
想像してみてください:ブラウザが特定のウェブページをひたすら訪れ、特定の操作を実行し、すべてが正しく動作していることを確認します。これがSyntheticテストの本質であり、ブラウザ自動化テストと何ら変わりません。
簡単に言えば、Syntheticテストはブラウザ自動化テストにいくつかの機能を追加したものです。
Playwright、Puppeteer、Seleniumのようなツールが通常、自動化テストに使用されます。これらのツールの比較については、別の記事で詳しく解説しています。
したがって、自動化テストに少しでも触れたことがあるなら、すでに半分は理解しているということです。しかし、Syntheticテストは単なるテストでは終わりません。それが「Synthetic」である理由のためです。
Syntheticテストの「Synthetic」の部分
「Synthetic」は、「合成」です。
では、この「Synthetic」とは何でしょう?具体的に何が合成されているのでしょう?
-
アクセスコンテキスト:Syntheticテストは通常、世界中の異なる地域にあるマシンから1日に何度もテストを実行します。例えば、東京とニューヨークでアプリがどのように動作するか気になったことはありませんか?Syntheticテストがその疑問に答えます。
-
ネットワークデータ:単にタスクが完了するかどうかを確認するだけではありません。Syntheticテストは、ネットワークパフォーマンスの主要な指標(例えばレイテンシやリクエストエラーなど)も記録します。不具合があればすぐにわかります。
-
フロントエンドパフォーマンス:ページの読み込み速度、リソースの読み込み時間、レンダリング時間など、Syntheticテストはこれらを測定します。遅いウェブサイトでは、顧客が必要ないと判断してページを閉じるまでの時間が十分にあります。
Syntheticテストは単に「動作するか?」というチェックを超え、「どこでも、どんな条件下でも、ちゃんと動作しているか?」を問います。
Syntheticテストの利点:包括的な問題発見
Syntheticテストの特徴は、問題を包括的に検出できる点にあります。ブラウザ自動化テストと合成されたモニタリングデータを組み合わせることで、潜在的な問題の全体像を提供します。以下のような点で優れています:
-
タスクの完了:Syntheticテストは、ログイン、購入、フォーム送信などのトランザクションやタスクが正常に完了することを確認します。
-
パフォーマンスの洞察:単に動作するかどうかを確認するだけでなく、「どれだけ良く動作するか」を確認します。例えば、ある地域では3秒で読み込まれるページが、別の地域では30秒かかるといった洞察を提供します。
-
早期問題検出:合成されているため、実際のユーザーが遭遇する前にシナリオをテストできます。
-
スケーラビリティ:Syntheticテストは、世界中のロケーションで24時間365日テストを実行でき、人間のQAチームでは到底及ばない規模で実現します。
結論
Syntheticテストは、ブラウザ自動化テストに合成されたモニタリングデータの先見性を加えた拡張版であり、アプリケーションがどこでも常に信頼性高く動作することを保証します。
次に「Syntheticテスト」という言葉を耳にしたときには、その正体を正確に理解し、曖昧な説明に惑わされることなく対応できるようになるでしょう!😉
クラウドでブラウザ自動化テストをホストする方法をお探しなら、Leapcellをお試しください!
Leapcellは、分散アプリケーション向けに設計された最新のクラウドコンピューティングプラットフォームで、PythonおよびNode.jsコードをサーバーレス方式でホストできます。リソースを使用した分だけ支払う従量課金モデルを採用し、アイドルコストをゼロに抑えます。
Playwrightのデプロイ例については、ドキュメントをご覧ください。
Discussion