次世代検証ツール選定案_問3_デスクトップWeb_ローカル実機版

問い 3 (ローカル実機版) ── macOS / Windows 11 デスクトップ全ブラウザ Web アプリ検証ツールの選定

本書の前提: 02_回帰テスト版 の前提に加え、クラウドサービス (Microsoft Playwright Workspaces / BrowserStack / Sauce Labs / LambdaTest) を全廃し、ローカルの Mac (Apple Silicon) と Windows 11 PC のみで完結させる 運用に最適化したベストプラクティス。

底本: 02_回帰テスト版/次世代検証ツール選定案_問3_デスクトップWeb_回帰テスト版.md の結論を、オールローカル前提に書き直したもの。

調査日: 2026-06-08


結論 (ローカル実機版・最終推奨)

Mac mini (macOS) と Windows 11 PC の 2 台構成で Playwright を直接実行し、Safari は macOS 上の safaridriver 経由、Chrome / Edge / Firefox は両 OS のローカル install で網羅する。クラウドへの月額支出ゼロ、データ流出ゼロ。

レイヤ CI/CD 前提版 回帰テスト版 ローカル実機版
自動化基盤 Playwright + MPT (主) Playwright + MPT (per-minute) Playwright のみ (Mac mini + Windows 11 PC でローカル実行)
macOS Safari 検証 BrowserStack Automate 経由 BrowserStack Live Mac mini 上の Safari + safaridriver (Apple 公式 W3C WebDriver)
Chrome / Edge / Firefox MPT クラウド MPT クラウド 両 OS にネイティブ install、Playwright で操作
視覚検証 BrowserStack Screenshot Compare PixelMatch / SSIM PixelMatch / Playwright toHaveScreenshot()
DRM フォールバック <video> + 閾値手動 <video> + 必ず手動 <video> + 実機ローカル目視
アクセシビリティ axe-core CI 統合 axe-core 手動 axe-core 手動 + VoiceOver / ナレーター実機検証
マルチモーダル LLM 排除 排除 変更なし (ローカル LLM 補助のみ)
データ流出 クラウド送信あり 同左 ゼロ (オンプレ完結)

1. クラウドサービス全廃の判断とトレードオフ

1-1. 失うもの

1-2. 得るもの

1-3. 適合する運用パターン


2. ハードウェア構成

2-1. macOS ホスト (1 台)

機種 適合
Mac mini M4 / M4 Pro (推奨) ✅ デスク常設、低消費電力
Mac Studio M4 Max / M3 Ultra ✅ 大規模並列
MacBook Pro M4 系 ⚠️ 携帯性、ポート数注意
Intel Mac ❌ Safari の挙動が Apple Silicon と異なる場合あり

Safari のテストは必ず Mac (macOS) 上で実行する。Linux / Windows 上に Safari は存在しない。

2-2. Windows 11 ホスト (1 台)

機種 適合
専用 Windows 11 PC (Mini PC: Intel NUC / Beelink / Minisforum 等) ✅ 推奨、デスク常設
MacBook + Parallels Desktop で Windows 11 ARM 仮想化 ⚠️ Windows on ARM、x64 アプリ互換性差あり
MacBook + Boot Camp (Intel Mac のみ、Apple Silicon は非対応) ❌ Apple Silicon Mac では不可
UTM / Lima / VMware Fusion で Windows 11 ARM 仮想化 ⚠️ Parallels より遅い、ライセンス・x64 互換性に注意

推奨: 中古や省スペース PC で Windows 11 Pro 専用機を 1 台用意する (新品で ¥80,000-120,000 程度)。Parallels は Windows 11 ARM のため Edge / Chrome は動くが、Windows 11 x64 固有挙動 (例: Microsoft Store アプリ呼出し、特定 ActiveX 系) は再現できない可能性。

2-3. ブラウザ install 一覧

OS ブラウザ install 方法
macOS Safari OS バンドル (バージョンは macOS に紐づく)
macOS Chrome 公式 .dmg / brew install --cask google-chrome
macOS Edge 公式 .pkg / brew install --cask microsoft-edge
macOS Firefox 公式 .dmg / brew install --cask firefox
Windows 11 Edge OS バンドル (自動更新)
Windows 11 Chrome 公式インストーラ / winget install Google.Chrome
Windows 11 Firefox 公式インストーラ / winget install Mozilla.Firefox
Windows 11 Safari ❌ 提供なし (Apple は 2012 年に Windows 版 Safari を打ち切り)

2-4. 初期投資試算

品目 金額 (税込)
Mac mini M4 32 GB / 512 GB ¥220,000
Windows 11 Mini PC (Intel N100 / Ryzen 5 / 16 GB / 512 GB SSD) ¥80,000
Windows 11 Pro ライセンス ¥15,000 (Mini PC 同梱の場合あり)
4K モニター 27“ (DPI / Retina 検証用) ¥50,000
Apple Studio Display 5K (任意、Retina 検証強化) ¥220,000
周辺 (キーボード / マウス / KVM スイッチ) ¥20,000
最小構成 (4K モニター 1 枚) 約 ¥385,000
拡張構成 (Studio Display 追加) 約 ¥605,000

クラウド (MPT + BrowserStack) 年額 ¥170,000-260,000 と比較し、最小構成で 約 2 年で回収、拡張構成でも 約 3 年で回収


3. ソフトウェア環境構築

3-1. macOS 側

# Homebrew で基本ツール
brew install node

# ブラウザ (Cask)
brew install --cask google-chrome microsoft-edge firefox

# Xcode は不要 (デスクトップ Web 検証のみ)
# ただし xcode-select --install で CLI Tools のみ入れておくと無難

# Safari は OS バンドル、設定のみ:
#   Safari → 環境設定 → 詳細 → "メニューバーに開発メニューを表示" ON
#   開発メニュー → "リモートオートメーション" を有効化
sudo safaridriver --enable   # Safari WebDriver の有効化

# Playwright + 補助ツール
npm install -g playwright@^1.50
npx playwright install              # bundled Chromium / WebKit / Firefox
# ※ Playwright の bundled WebKit は Safari と等価ではないが、デスクトップでは
#    safaridriver 経由でブランド Safari を直接操作するため、bundled WebKit は補助扱い

# Python テストランナー
pip install playwright pytest-playwright opencv-python scikit-image axe-core-python

3-2. macOS Safari の自動化準備

# 1. Safari の開発メニュー有効化 (GUI)
#    Safari → 環境設定 → 詳細 → "メニューバーに開発メニューを表示"

# 2. リモートオートメーション有効化 (GUI)
#    開発メニュー → "リモートオートメーションを許可"

# 3. safaridriver の有効化
sudo safaridriver --enable

# 4. 動作確認
safaridriver --version
# Output: Included with Safari 18.x

3-3. Windows 11 側

# 管理者 PowerShell で
# Chocolatey や winget で各ブラウザ install
winget install Google.Chrome
winget install Mozilla.Firefox
# Edge は OS バンドル

# Node.js
winget install OpenJS.NodeJS.LTS

# Playwright
npm install -g playwright@^1.50
npx playwright install

3-4. Selenium / WebDriver 系 (Safari 用)

Playwright は macOS Safari (ブランド版) をサポートしないため、Safari は Selenium WebDriver + safaridriver で操作する

# Python + Selenium で macOS Safari 自動化 (Mac mini ローカル)
from selenium import webdriver
from selenium.webdriver.safari.options import Options

options = Options()
driver = webdriver.Safari(options=options)
driver.get("https://example.com/")
driver.save_screenshot("safari_macos.png")
driver.quit()

または、Playwright で他ブラウザ + Selenium で Safari を併用する 2 系統テストランナー 構成にする。


4. ローカル実機自動化の構成パターン

4-1. 2 PC + 4K モニター

┌──────────────────────────────┐     ┌──────────────────────────────┐
│  Mac mini M4                 │     │  Windows 11 Mini PC          │
│  ├─ Safari (safaridriver)    │     │  ├─ Edge                     │
│  ├─ Chrome (Playwright)      │     │  ├─ Chrome (Playwright)      │
│  ├─ Firefox (Playwright)     │     │  ├─ Firefox (Playwright)     │
│  ├─ Edge (Playwright)        │     │  └─ Test Runner              │
│  └─ Test Runner              │     │                              │
└────────┬─────────────────────┘     └────────┬─────────────────────┘
         │                                    │
         └────────── 同一 LAN ────────────────┘
                          │
                          ▼
               ┌─────────────────────┐
               │  4K モニター 27"    │
               │  (KVM 切替で両 PC)  │
               └─────────────────────┘

4-2. KVM スイッチによる効率化

4-3. 並列実行の現実値

4-4. DPI / Retina 検証

OS DPI 検証方法
macOS (Retina) 2x Mac の標準解像度
macOS + 外部 4K 1x / 2x (HiDPI 切替) システム設定 → ディスプレイで切替
Windows 11 1x / 1.25x / 1.5x / 2x 設定 → ディスプレイ → 表示スケール
Playwright 任意 deviceScaleFactor で論理 DPI 固定

実機の DPI 切替テスト はクラウドでは現実的に不可能。本書のローカル実機版だけが網羅できる。


5. 視覚救済 (オールローカル維持)

領域 実装
通常 DOM Playwright auto-wait + toHaveScreenshot()
Canvas / WebGL PixelMatch + 領域マスク
DRM 領域 <video> プロパティ監視 + 実機画面の手動目視
DPI 差吸収 Playwright deviceScaleFactor 1x / 1.5x / 2x で各々ベースライン保持
アクセシビリティ @axe-core/playwright をローカル実行、結果を JSON で保存
// Playwright で macOS の DPI 別 visual regression
import { test, expect, devices } from '@playwright/test';

const dpiVariants = [1, 1.5, 2];

for (const dsf of dpiVariants) {
  test(`top page at deviceScaleFactor=${dsf}`, async ({ browser }) => {
    const context = await browser.newContext({ deviceScaleFactor: dsf });
    const page = await context.newPage();
    await page.goto('https://example.com/');
    await expect(page).toHaveScreenshot(`top-dsf-${dsf}.png`, { maxDiffPixelRatio: 0.01 });
    await context.close();
  });
}

6. 採用基準と Anti-pattern (ローカル実機版)

採用基準

観点 必須要件
macOS ホスト Apple Silicon Mac (M2 以降推奨)
Windows ホスト Windows 11 (x64 PC、Parallels は限界あり)
Safari 自動化 sudo safaridriver --enable 必須、Selenium WebDriver 経由
Chrome / Edge / Firefox 公式 stable 版を直接 install、Playwright で操作
視覚比較 PixelMatch / Playwright built-in toHaveScreenshot()
DPI 検証 物理モニタの解像度切替 + Playwright deviceScaleFactor
アクセシビリティ @axe-core/playwright + 実機 VoiceOver / ナレーター手動確認
データ流出ゼロ スクリーンショット・ログを外部送信しない

Anti-pattern (ローカル実機前提)


7. 運用パターン (月次回帰の SOP 例)

7-1. 月次回帰のチェックリスト

番号 作業 担当 想定時間
1 Mac mini / Windows 11 PC を起動、Playwright / Selenium / axe-core バージョン確認 QA 10 分
2 各 OS のブラウザバージョン確認 (safari --version / Edge / Chrome / Firefox) QA 10 分
3 safaridriver --enable 状態確認 QA 5 分
4 テストスクリプトの最新化 QA + Dev 30-60 分
5 macOS 側で Safari + Chrome + Firefox + Edge を並列実行 QA 30-60 分
6 Windows 11 側で Edge + Chrome + Firefox を並列実行 QA 30-60 分
7 DPI 別実行 (1x / 1.5x / 2x の 3 系統で代表シナリオ) QA 30 分
8 PixelMatch / toHaveScreenshot() 差分検出された画面の目視確認 QA 1-2 時間
9 DRM 領域シナリオの手動目視レビュー (実機画面を直接観察) QA 30 分
10 axe-core レポートの WCAG 違反確認 QA + Designer 1 時間
11 VoiceOver (Mac) / ナレーター (Windows) でアクセシビリティ手動確認 Designer 30 分
12 レポート作成、Issue 起票 QA 1 時間
合計 約 6-8 時間 (1 営業日以内)

7-2. テスト戦略の優先順位

  1. クリティカルパス優先: 主要動線を Safari + Edge + Chrome の 3 ブラウザで 100% カバー
  2. Firefox はサンプル: 主要動線のみ、レアブラウザ対応扱い
  3. DPI 別検証は代表シナリオ: 全シナリオ × 3 DPI は工数過大、代表 10-20 シナリオに絞る
  4. DRM / Canvas は実機目視必須
  5. アクセシビリティは axe-core 自動 + 実機 VoiceOver/ナレーター のハイブリッド

8. 対立点と裁定 (ローカル実機前提で再評価)

対立項目 CI/CD 前提版 / 回帰テスト版の裁定 ローカル実機版の裁定
自動化基盤 Playwright + MPT (主) Playwright のみ (ローカル install)、Safari は Selenium WebDriver
Safari 検証 BrowserStack 経由 Mac mini + safaridriver 直接
商用 Visual AI BrowserStack Screenshot Compare / なし PixelMatch / Playwright built-in のみ
DRM フォールバック 手動レビュー主体 必ず手動目視 (実機画面を直接観察)
axe-core 統合 CI 統合 / 手動 手動 + VoiceOver/ナレーター実機確認
マルチモーダル LLM 排除 変更なし、ローカル LLM 補助のみ
Windows 検証 クラウド経由 専用 Windows 11 PC で実機 (Parallels は補助)

9. 残課題

  1. Windows on ARM (Parallels) の互換性確認: x64 専用機能を使うアプリで挙動差を実測、Parallels で十分な範囲を文書化
  2. safaridriver のセッション安定性: 長時間テストで死ぬ事象の対処、再起動スクリプト整備
  3. DPI 別ベースライン管理: 1x / 1.5x / 2x × OS 2 × ブラウザ 4 = 最大 24 系統のベースラインを Git で管理する命名規則
  4. OS 更新時の差分テスト: macOS Sonoma → Sequoia → Tahoe、Windows 11 23H2 → 24H2 等の OS メジャー更新時の集中検証手順
  5. Internet Explorer / Edge Legacy 対応の取捨選択: 公式 EoL 済み、対応する場合は別 VM を用意するか、対象外とするかの明文化
  6. テストデータ匿名化: 本番データを使わない代替データ整備
  7. ローカル LLM (DwarfStar4 等) のデバッグ補助: 失敗テストの解釈支援、ただし本番判定オラクル不可の原則を明文化
  8. KVM スイッチの導入: 物理デスク占有を抑えるための機種選定 (Thunderbolt 4 対応の高機能 KVM)

10. クラウドサービス復活への分岐条件

以下のいずれかが発生した時点で、本書を破棄し回帰テスト版 (02_回帰テスト版) または CI/CD 前提版 (01_CI-CD前提版) への移行を検討する:


11. クラウド削減効果の試算 (再掲)

項目 年額 (クラウド版) 年額 (本書) 削減効果
MPT (Playwright Workspaces) $50-100/月 × 12 = $600-1,200 ¥0 ¥90,000-180,000
BrowserStack Live $39/月 × 12 = $468 ¥0 ¥70,000
BrowserStack Screenshot Compare (含む) ¥0
年額削減合計 ¥160,000-250,000

初期投資 ¥385,000-605,000 ÷ 年額削減 = 約 2-3 年で投資回収。3 年目以降は端末更新を除き継続支出ゼロ。


12. 参考文献

底本 02_回帰テスト版/次世代検証ツール選定案_問3_デスクトップWeb_回帰テスト版.md の参考文献をすべて引き継ぐ。ローカル実機版固有の追加情報: