クロスブラウザーテスト: すべてのブラウザーとデバイスに 1 つのテスト
クロスブラウザーテストの解説: ブラウザーとデバイスの間で何が壊れるか、チームは通常どうカバーしているか、そして 1 つの Web テストを記録してどこでも実行する方法。
読了 10 分更新日: 2026年11月6日執筆: Ait Nohaila (事業開発担当)
各ブラウザーは同じページを独自のエンジンで描き、各デバイスはページに異なる画面を与えるため、クロスブラウザーテストでは、ユーザーが使うあらゆるブラウザーとデバイスで Web サイトが正しく動き、正しく見えることを確かめます。
クロスブラウザーテストとは?
Definition
クロスブラウザーテストとは、ユーザーが使うあらゆるブラウザーで Web サイトや Web アプリが正しく動き、正しく見えることを確かめることです。クロスデバイステストは、画面と入力について同じことを行います: スマートフォン、タブレット、デスクトップのサイズ、タッチとマウス、縦向きと横向きです。両方を合わせて、同じ問いに答えます。チームが作ったページは、スマートフォンで、別のブラウザーで、別の言語で開く人にとって、ちゃんと動くのか?
この問いが重要なのは、Web ページが固定された絵ではないからです。どのブラウザーも、同じ HTML、CSS、JavaScript をそれぞれのエンジンで描きます。どのデバイスも、ページに合わせるべき異なる画面を与えます。幅の広いモニターの Chrome で動くチェックアウトが、小さなスマートフォンでは「支払い」ボタンをスクロールしないと見えない位置へ押し出すことがあります。
幅の広いモニター
小さなスマートフォン
- モバイル Web テストは、スマートフォンとタブレットで Web サイトを見る部分です。レスポンシブテストは、レイアウトが各画面サイズに適応することを確かめる部分です。
ブラウザーとデバイスの間で何が変わるか
特定のブラウザーの特定の画面で合格したテストは、ほかについてはほとんど何も証明しません。ページを最もよく壊すのは、次の違いです。
| 違うもの | 壊れうるもの |
|---|---|
| レンダリングエンジン | Chrome と Edge は同じエンジンを共有し、Firefox は別のエンジン、Safari はさらに別のエンジンを持ちます。フォント、フォームコントロール、スクロールバー、間隔が異なることがあります。 |
| ビューポート | 縦に持ったスマートフォンの幅は数百ピクセルです。メニューは折りたたまれ、列は積み重なり、要素はスクロールしないと見えない位置へ移動します。 |
| タッチ | タップはクリックではありません。ホバーメニュー、ドラッグ アンド ドロップ、小さなターゲットは、動作が異なります。 |
| デバイスピクセル比 | スマートフォンは、ページの 1 ピクセルを画面の 2 ~ 3 ピクセルで描きます。細い線、アイコン、画像が変わります。 |
| 言語とタイムゾーン | テキストは長くなり、日付と価格は形式が変わり、時刻は別のタイムゾーンで表示されます。 |
| ネットワーク速度 | 遅い接続では、スピナーが長く残り、ページの準備が整う前にクリックが来ることがあります。 |
| ズームと動きを減らす | 大きな文字が必要な人はズームし、アニメーションを減らすよう求める人もいます。それでもレイアウトは崩れてはなりません。 |
2026 年にテストすべきブラウザー
まず答えになるのは自分たちのアクセス解析です: ユーザーが実際に開いているブラウザーです。それ以外については、市場シェアが訪問の出どころを教えてくれます。
2026 年 10 月のStatCounter による世界のブラウザー市場シェアは、全デバイス合計で次のとおりです。
| ブラウザー | 2026 年 10 月の世界シェア | レンダリングエンジン |
|---|---|---|
| Chrome | 68.79 % | Blink (Edge、Opera、Samsung Internet と共通) |
| Safari | 16.59 % | WebKit (iPhone と iPad で唯一のエンジン) |
| Edge | 5.36 % | Blink |
| Firefox | 2.57 % | Gecko (独自のエンジン) |
| Opera | 2.16 % | Blink |
| Samsung Internet | 2.05 % | Blink |
- 3 種類のブラウザーで 3 種類のエンジンをカバーできます。Chrome は、Edge、Opera、Samsung Internet を含むすべての Blink ブラウザーを代表します。Safari は iPhone と iPad で唯一のエンジンなので、2 番目にカバーすべきものです。Firefox はシェアこそ小さいものの独自のエンジンなので、そこで崩れるレイアウトは、根強い少数のユーザーにとって崩れます。
シェアは毎月少しずつ動くので、年に 1 回ではなく、リリースの前にこのページを確認してください。また、3% 未満のシェアでも、アクセスの多いサイトでは数千人に上ります。
チームはふつう、クロスブラウザーテストをどう行っているか
まずは手動アサーションです。テスターが各ブラウザーでページを開き、ウィンドウのサイズを変えます。1 回のリリースには通用しますが、すべてのビルドには広がりません。
次に来るのが自動化スイートです。その形はどのフレームワークでも似ています: コードで書いたテストと、それをブラウザーやデバイスごとに実行し直す構成です。
Playwright のプロジェクトとデバイス
Playwright はテストをプロジェクトにまとめます。プロジェクトとは、ブラウザーやエミュレートされたデバイスなど、同じ構成で実行されるテストのグループです。Playwright は既定ですべてのプロジェクトを実行します。そのデバイスレジストリには、スマートフォン、タブレット、デスクトップが、画面サイズ、ユーザーエージェント、タッチ対応とともに記述されています。
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
projects: [
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
{ name: 'Mobile Chrome', use: { ...devices['Pixel 5'] } },
{ name: 'Mobile Safari', use: { ...devices['iPhone 12'] } },
],
});Cypress のブラウザーとビューポート
Cypress は、--browser フラグで選ぶ Chrome 系ブラウザー、Firefox、WebKit に対応しています。cy.viewport コマンドは画面のサイズと向きを設定し、iphone-6 や ipad-2 などのプリセットがあります。ドキュメントには、デバイスピクセル比はシミュレートされないと記されています。また、時間と CI のコストを節約するため、Firefox はコミットごとではなく毎晩実行するなど、一部のブラウザーの実行頻度を下げることも提案しています。
Selenium Grid
Selenium Grid は、リモートのマシン上で、ブラウザーのバージョンとプラットフォームをまたいで、WebDriver スクリプトを並列に実行します。Selenium でクロスプラットフォームテストを行う古典的な方法です。それらのマシンの用意と、ブラウザーの更新はチームが行います。
デバイスクラウド
BrowserStack、TestMu AI (旧 LambdaTest)、Sauce Labs などのデバイスクラウドは、ブラウザーとデバイスをホストしてくれます。BrowserStack と TestMu AI はそれぞれ数千のブラウザーと OS の組み合わせを掲げています。Sauce Labs はエミュレーター、シミュレーター、実機を提供します。コードで書いたテストはそれらのマシン上で実行され、BrowserStack Automate のプランは並列テスト数で数えられます。
これらのツールをより広く見るには、比較調査をご覧ください。
コードで書いたクロスデバイススイートのコスト
| 保守するもの | 理由 |
|---|---|
| 要素ごとのセレクター | ID、CSS セレクター、またはロール名で、デザイン変更のたびにいくつかが壊れます。 |
| レイアウトごとのコード | スマートフォンではリンクがメニューの後ろに隠れるので、テストのコードにはそのための分岐が必要です。 |
| デバイスのリスト | どのスマートフォン、サイズ、ブラウザーをカバーするかを、構成ファイルで最新に保ちます。 |
| 遅いページのための待機 | 遅い接続には、速い接続では決して現れない待機が必要です。 |
| 所要時間 | 各テストはブラウザーやデバイスごとに 1 回実行されるので、10 個あればスイートは 10 回実行されます。 |
test('open the checkout', async ({ page, isMobile }) => {
if (isMobile)
await page.getByRole('button', { name: 'Menu' }).click();
await page.getByRole('link', { name: 'Checkout' }).click();
});これを、小さな画面で動くすべての要素の分だけ掛け合わせてください。スイートのクロスデバイス部分は、独自の保守を伴う第 2 のスイートにすぐ膨らみます。
1 回の記録からのクロスブラウザーテスト
Windows でエンドツーエンドテストを自動化する GUI Test Studio は、別の道を取ります。毎日使っているブラウザーで自分でワークフローを行い、Web テストを一度だけ記録します。カバーすべきブラウザー、デバイス、条件にチェックを入れます。すると GUI Test Runner-Recorder が、それぞれに対応するテストのバージョン、つまりブランチを生成します。
記録
一度だけ、いつものブラウザーで
選択
ブラウザー、デバイス、条件
生成
それぞれにブランチを
実行
ヘッドレスで、同時に
レポート
それぞれに信頼度レポートを
Web アプリを記録するとき、アドレスの下にあるこのテストを他のブラウザーとデバイス向けにも生成するにチェックを入れてください。ブラウザーは、コンピューターにインストールされているものです: Chrome、Edge、Firefox です。デバイスは、メーカーごとにまとめられた 80 以上のスマートフォン、タブレット、デスクトップの画面サイズです。スマートフォンとタブレットはそれぞれ、縦向き、横向き、またはその両方で持てます。
ウィンドウには、選択によっていくつのテストができるか、生成にどれだけかかるか、ディスクをどれだけ使うかが表示されます。テストが保存されると、ブランチはバックグラウンドで生成されます。記録時に固定されるものはありません: ブラウザーとデバイスは後から追加できます。
記録
Checkout.GTS
Chrome · デスクトップ 1920 × 1080
生成されたブランチ
記録は初めてですか?テストを記録するが道のり全体を示します。テストをプロンプトで説明し、同じ文でブラウザーとデバイスを名指しすることもできます: プロンプトからテストを作成するをご覧ください。
ブラウザーとデバイスごとのバージョンが行うこと
ブランチは、記録を同じ座標で再生したものではありません。そのブラウザーとデバイス上で、ページ自身の要素を通じて、テストをステップごとに再生して作られます。
| そのブラウザーとデバイスでは | ブランチが行うこと |
|---|---|
| ボタンが別の場所にある | ページがボタンの位置だと示す場所で、ボタンをクリックします。 |
| 要素がスクロールしないと見えない位置にある | そこまでスクロールするステップを追加します。 |
| リンクがメニューの後ろに隠れている | 先にメニューを開くステップを追加します。 |
| アサーションの要素の見た目が違う | そのデバイスの画面から、アサーションの画像を切り出し直します。 |
| キャンバス上の描画 | キャンバスの中の同じ位置に、そのデバイスでのキャンバスのサイズで、同じストロークを描きます。 |
| ドラッグ アンド ドロップ | ほかの項目の間の同じ位置にアイテムをドロップし、どこに着地したかを確かめます。 |
| 要素がこのデバイスでは表示されない | そのアサーションは、理由とともに除外されます。 |
スマートフォン向けに生成
ブランチの各アサーションはそのデバイスが実際に表示するものから切り出されるので、スマートフォン固有のレイアウトが不合格と読まれることはなく、そのスマートフォンでの本当のリグレッションは今までどおり捉えられます。
あるデバイスでステップを実行できないときは、ブランチがそう伝えます。注意が必要な状態になり、GUI Test Studio がそのステップに印を付けて理由を示します。
レスポンシブ、ローカライズ、低速ネットワークのテスト
ブラウザーと画面は、ユーザーが持ち込むものの半分にすぎません。残りの半分は、ブラウザーの設定です。ブランチは条件のもとで実行でき、チェックを入れた各条件は、選んだブラウザーとデバイスと組み合わされます。
| 条件 | ページが受け取るもの |
|---|---|
| 言語とタイムゾーン | 26 言語でのブラウザーの言語と、ある都市の時計。自分で翻訳するページはその言語を表示し、テキストアサーションはそこで表示される文言を期待します。 |
| ネットワーク速度 | Chrome と Edge での高速 4G、低速 4G、または 3G。ページはその接続と同じ遅さで読み込まれます。 |
| ズーム | 大きな文字が必要な人が見るように、100% から 200% まで拡大したページ。 |
| 動きを減らす | ページにアニメーションを減らすよう求める設定。 |
Chrome で、iPhone とともに Français (France) と低速 4G にチェックを入れます。ブランチは、スマートフォンの画面で、弱い接続の速度で、フランス語のページを検証します。これがローカライズテストとネットワークスロットリングで、セットアップのコードは不要です。
ヘッドレスで、同時に
- ブランチはヘッドレスで実行できます: ブラウザーはウィンドウなしで動くので、画面もコンピューターも自分のものとして使えます。スマートフォン、タブレット、条件付きのブランチは常にこの方法で実行されます。デスクトップのブランチも、テストが許す限りそうなり、それが既定です。記録したテスト自体は、記録されたとおりにウィンドウで実行されます。
そのようなテストでテストを実行をクリックすると、GUI Test Runner-Recorder は今回の実行でどのバージョンをカバーするか尋ねます。生成されたすべてのブランチにチェックが入っていて、予想時間がリストの下に表示されます。これは前回それぞれにかかった時間から求めたものです: 典型的な数字であり、上限ではありません。
最後に、ウィンドウが 1 個開き、すべての実行の判定がそれぞれのレポートとともに並びます。実行そのものについてはテストを実行するをご覧ください。
CI/CD でのクロスブラウザーテスト
GUI Test Studio のコマンドラインである gtr-cli は、どのパイプラインでも同じブランチを実行します。--branch all は記録したテストとすべてのブランチを実行し、それぞれが JUnit ファイルに独自のエントリと独自の履歴を持ちます。gtr-cli generate は、欠けているか古くなったブランチを作ります。
gtr-cli generate Checkout.GTS --branch missing
gtr-cli run Checkout.GTS --branch all --junit results\junit.xmlパイプラインでテストを実行するにすべてのオプションがあります。TeamCity の例は本物のパイプラインを順を追って説明し、どの CI/CD ツールでも同じように動きます。
ブラウザーとデバイスごとに 1 件のレポート
信頼度レポートでは、ブラウザーとデバイスボタンが記録とすべてのブランチを前回の判定とともに並べます。選んだもののレポートを開きます。
編集も同じ考え方です。ステップの動作を変えてブランチを保存すると、GUI Test Studio は、その変更がすべてのブラウザーとデバイス向けか、これだけか尋ねます。記録したテストを変更すると、そこからすべてのブラウザーとデバイスを更新することを提案します。
クロスブラウザーテストのチェックリスト
どのツールでテストを実行するにせよ、リリース前に確認すべき 10 項目です。
- 1アクセス解析に現れるブラウザーとデバイスを書き出し、3 種類のエンジン、つまり Chrome、Safari、Firefox を加えてください。すべてのページではなく、サインイン、検索、チェックアウトなど、最も重要な操作の流れを選んでください。少なくとも、縦に持ったスマートフォン 1 台、タブレット 1 台、そして 1366 × 768 のような小さなデスクトップサイズでテストしてください。マウスだけでなくタッチも確かめてください: タップ、ホバーメニュー、ドラッグ アンド ドロップ、各ターゲットの大きさです。細い線、アイコン、画像がそれぞれ 2 ~ 3 ピクセルで描かれるスマートフォンで、ピクセル密度を確かめてください。長いテキスト、日付、価格を確かめられるよう、別の言語とタイムゾーンで操作の流れを実行してください。長く残るスピナーがクリックを壊さないよう、遅い接続でも実行してください。大きな文字が必要な人と同じように、ページを 150% または 200% にズームしてください。各ブラウザーが表示する内容を前回の表示と比較し、あるブラウザーでのレイアウト崩れを、起きたその場所で捕まえてください。すべてのビルドで、少なくとも毎晩、セット全体を実行し、崩れが入り込んだその日に見つけられるようにしてください。
始める前に知っておくこと
納得して選べるように、いくつかの制限を挙げます。
| 制限 | 意味 |
|---|---|
| Chrome、Edge、Firefox | Safari とそのエンジンは提供されません。GUI Test Studio は Windows で動き、そこにインストールされたブラウザーでブランチを生成します。 |
| エミュレートされたデバイス | iPhone のブランチは、Chrome、Edge、Firefox の中で、iPhone の画面サイズ、ピクセル密度、タッチ入力、ブラウザーの識別情報を持ちます。スマートフォン自身のブラウザーエンジンは動かしません。 |
| ネットワーク速度 | ネットワークを遅くできるのは Chrome と Edge だけなので、Firefox にはネットワーク速度のブランチがありません。 |
| Web アプリのみ | ブランチには、すべての要素の位置を伝える Web ページが必要です。デスクトップアプリやゲームは 1 件のテストのままです。 |
ブラウザーの外で GUI Test Studio がカバーするもの全体を知りたいですか?エンドツーエンドテストをご覧ください。
「ブラウザーとデバイス」は Web ページ向けです: Electron アプリは独自の Chromium を同梱しているため、Electron アプリのエンドツーエンドテストで説明しているように、デスクトップアプリとしてビルドごとにテストします。
要点
- 1クロスブラウザーテストは、ユーザーが使うあらゆるブラウザーとデバイスで同じページを確かめます: エンジンごとに描き方が異なり、画面ごとにページの収まり方が異なるからです。
- 23 種類のブラウザーで 3 種類のエンジンをカバーできます: Blink には Chrome、WebKit には Safari、Gecko には Firefox、そして訪問の多くを占める画面にはスマートフォンです。
- 3コードで書いたクロスデバイススイートは、第 2 のスイートです: セレクター、デバイスのリスト、スマートフォンで異なる部分のコードは、すべて自分で保守することになります。
- 4GUI Test Studio は Web テストを一度だけ記録し、チェックを入れたブラウザー、デバイス、条件ごとに、ウィンドウなしで実行されて個別にレポートされるバージョンを生成します。
- 5制限を知っておいてください: Safari のエンジンはなく、スマートフォンは実機ではなくエミュレーションで、Firefox では低速ネットワークを使えません。
よくある質問
クロスブラウザーテストとは?
クロスブラウザーテストは、ユーザーが使うあらゆるブラウザーで Web サイトや Web アプリが正しく動き、正しく見えることを確かめます。同じページでも Chrome、Edge、Firefox、Safari では描かれ方が異なりうるので、それぞれに独自のアサーションが必要です。
クロスブラウザーテストとクロスデバイステストの違いは?
クロスブラウザーテストは、同じページを異なるエンジンで描くブラウザーを比較します。クロスデバイステストは、画面と入力を比較します: スマートフォン、タブレット、デスクトップのサイズ、タッチとマウス、縦向きと横向きです。ほとんどの Web チームには両方が必要です。
クロスブラウザーテストはコードなしで自動化できますか?
はい。GUI Test Studio では Web テストを一度だけ記録し、GUI Test Runner-Recorder が Chrome、Edge、Firefox、そしてエミュレートされたスマートフォン、タブレット、デスクトップのサイズ向けに同じテストを生成します。各バージョンはページ自身の要素を見つけるので、書くべきセレクターはありません。
デバイスのエミュレーションは、実機でのテストの代わりになりますか?
完全には代わりになりません。エミュレーションは、デスクトップブラウザーの中で、デバイスの画面サイズ、ピクセル密度、タッチ入力、ブラウザーの識別情報でページを確かめます。スマートフォン自身のブラウザーエンジンは動かさないので、そのエンジンについては実機が基準であり続けます。
クロスブラウザーテストを CI/CD パイプラインで実行できますか?
はい。--branch all を付けた gtr-cli run コマンドは、記録したテストと、生成されたすべてのブラウザーとデバイスを実行し、それぞれが独自の JUnit エントリと独自の履歴を持ちます。ブラウザーウィンドウの要らないバージョンは同時に実行されます。
GUI Test Studio は Safari をテストしますか?
いいえ。Chrome、Edge、Firefox 向けのテストを生成し、それらのブラウザーの中で iPhone と iPad をエミュレートします。Safari 自身のエンジンはその中にありません。
最初にどのブラウザーをテストすべきですか?
アクセス解析が示す、自分たちのユーザーが使っているブラウザーを優先し、残りは市場シェアで選びます。2026 年 10 月の世界全体について、StatCounter は Chrome を約 69%、Safari を約 17%、Edge を約 5%、Firefox を 3% 未満としています。Chrome と Edge は同じエンジンを共有しているので、Chrome、Safari、Firefox で 3 種類のエンジンをカバーでき、スマートフォンで訪問の多くを占める画面をカバーできます。
デバイスクラウドなしで、クロスブラウザーテストはどう行いますか?
自分のマシンにインストールされたブラウザーを実行し、その中でデバイスをエミュレートします。GUI Test Studio は、記録した Web テストのバージョンを、Chrome、Edge、Firefox と、80 以上のエミュレートされたスマートフォン、タブレット、デスクトップサイズ向けに生成し、ブラウザーウィンドウなしで同時に実行します。スマートフォン独自のブラウザーエンジンを確かめるには、引き続きデバイスクラウドか手元のスマートフォンを使います。
Selenium、Playwright、Cypress、BrowserStack、TestMu AI、LambdaTest、Sauce Labs、Chrome、Edge、Firefox、Safari、iPhone は、それぞれの所有者の商標です。
Opera、Samsung Internet、StatCounter は、それぞれの所有者の商標です。
テスト対象のアプリでご覧になりますか? チームとの 30 分の無料相談を予約してください。