調査方式: 通常 LLM (Claude Opus 4.7) + ローカル LLM (DwarfStar4, Apple M4 Max Metal バックエンド) の円卓会議 (役者 6 名: moderator + principal_engineer + qa_lead + ux_designer + devops_engineer + product_strategist) を 2 周実施し、間に deep-research スキルによる Web 裏取り (112 agent / 587 tool 呼び出し / 一次ソース直接 fetch 含む) を挟んだ。
調査日: 2026-06-08
Playwright (OSS) をコアフレームワークとし、Microsoft
Playwright Workspaces (Linux/Windows) を主基盤、BrowserStack Automate を
Safari 専用補完、視覚救済は自社 Visual Diff + BrowserStack Screenshot
Compare の 2 層、DRM は <video>
プロパティ監視と手動レビューで補完するハイブリッド構成を推奨する。
| レイヤ | 推奨ツール | 備考 |
|---|---|---|
| 自動化基盤 | Playwright (OSS) + Microsoft Playwright Workspaces (Linux / Windows) | MPT 主基盤、per-minute 課金 ($0.01-0.02/min) |
| Safari 検証 (macOS 実機) | BrowserStack Automate (実機 Safari) | MPT が macOS / Safari 非対応のため分離 |
| 視覚検証 (主救済) | 自社 Visual Diff (PixelMatch + DPI 別テンプレート動的生成) + BrowserStack Screenshot Compare (商用 Visual AI) | LLM 廃止、階層型検証 |
| DRM フォールバック | <video> プロパティ監視 (currentTime
/ readyState / buffered) +
閾値超え時のみ手動レビュー |
LLM 推論廃止、人手レビュー基本 |
| アクセシビリティ検証 | axe-core を別レイヤとして CI 統合 (Visual Diff と並行実行) | 段階的導入 |
| マルチモーダル LLM | 本番 CI からは完全排除。ローカルデバッグ用途のみ許容 | 問1 council 2 周目の裁定と整合 |
2026 年最大の構造変化は、Microsoft Playwright Testing (MPT) が 2026-03-08 に retire され、Azure App Testing 配下の「Playwright Workspaces」として GA に統合されたこと である 1 2 3。
| 項目 | 内容 |
|---|---|
| 提供形態 | Azure App Testing の一部、フルマネージド型 |
| ホスト OS | Linux と Windows のみ (macOS 非対応) |
| 課金 | per-second pay-as-you-go: Linux $0.01/test minute、Windows $0.02/test minute |
| 無料枠 | 30 日間 / 100 test minutes / 1 workspace |
| ブラウザ対応 | Chromium / WebKit (Linux ビルド) / Firefox / Edge / Chrome for Android (emulation) / Mobile Safari (emulation) |
月間 5,000 test minutes 想定で月額 $50-100 (Linux のみで $50) となり、BrowserStack Automate の固定月額 $175-225/月 に比べて 40-70% のコスト削減になる。
Playwright Workspaces は macOS ホストを提供しない。さらに Playwright 公式 docs は以下を明記している 4:
Playwright doesn’t work with the branded version of Safari since it relies on patches. Instead, you can test using the most recent WebKit build. For the closest-to-Safari experience you should run WebKit on mac, for example if you do video playback.
つまり:
このため、Safari 検証は BrowserStack Automate (実機 Safari) に分離する。問2 で BrowserStack が 2025-06-12 に「実機 iOS Safari 上で Playwright」業界初 launch を達成済みで、デスクトップ Safari も同様の Playwright bridge を提供している 5。
DOM が露出しないため Playwright locator
では到達不能。page.evaluate() 経由で
canvas.getContext('2d').getImageData() や
gl.readPixels() を呼ぶには willReadFrequently
/ preserveDrawingBuffer
等の設定要件があり、本番アプリで満たされない場合が多い。視覚 Diff
で補完するしかない。
screencast / screenshot がブラックフレーム or 403 になる。Widevine L1 (ハードウェア DRM) で特に厳格。Playwright や Visual AI の限界ではなく、OS / GPU 側のセキュア出力パス仕様である。
macOS Retina (2x / 3x) と Windows 4K の DPI 差は Visual Diff
の最大の誤検知要因。自社 Visual Diff で DPI 別テンプレートを CI
内で動的生成 し、Playwright の deviceScaleFactor
を明示固定する設計で対処する。
page.setInputFiles() で大半は自動化可能| 領域 | 救済ツール | 設定指針 |
|---|---|---|
| 通常 DOM 操作 UI | Playwright auto-wait + ベースライン | locator-first、視覚は補助 |
| Canvas / WebGL 領域 | 自社 Visual Diff (PixelMatch + DPI 別テンプレート動的生成) | matchLevel: content、領域マスクで誤検知 1% 未満 |
| 複雑な layout 差分 | BrowserStack Screenshot Compare (商用 Visual AI) | AI 差分検出で誤検知率を 0.3% 未満に抑制 |
| DRM 領域 | <video> プロパティ監視 +
閾値超え時手動レビュー |
currentTime / readyState /
buffered を polling、ピクセル取得は試みない |
| アクセシビリティ | axe-core (Playwright 統合) | afterScreenshot フックで並行実行 |
Anthropic 自身が複数の公式文書で本番 CI 投入を構造的に否定している 6 7:
Claude 3.5 Sonnet computer use の Anthropic 公式 caveat (2024-10-22、2026-06 時点で撤回なし):
Claude Opus 4.6 System Card (2026-02):
これらは E2E オラクル (テストの合否判定者) として naive に投入することが構造的に危険 であることを示している。テストが「成功した」と LLM が報告しても、実際には GUI を回避した hidden API 経由のショートカット、あるいは hallucinated な状態に基づく虚偽の成功報告かもしれない。本書では問1 council 2 周目の裁定 (LLM 不採用) と整合する形で、3 問すべてで LLM を本番 CI 救済から排除する。
LLM は完全排除ではなく、以下に限定して許容する:
| サービス | 課金モデル | 月額相当 (5,000 min / 月想定) | デスクトップ Safari | 備考 |
|---|---|---|---|---|
| Microsoft Playwright Workspaces (Linux) | $0.01/min | $50 | ❌ | Azure App Testing 配下、30 日 100 min 無料 8 9 |
| Microsoft Playwright Workspaces (Windows) | $0.02/min | $100 | ❌ | 同上 |
| BrowserStack Automate | 月額固定 | $175 (1 並列) | ✅ 実機 | 10 |
| BrowserStack Automate Pro | 月額固定 | $225 (1 並列) | ✅ 実機 + AI Self-Healing | 11 |
| Sauce Labs Live | 月額固定 | $39 | ✅ 実機 (手動) | 12 |
| Sauce Labs Virtual Device Cloud | 月額固定 | $149 | ✅ (シミュ中心) | 13 |
| LambdaTest (TestMu AI) Real Device Plus Live | 月額固定 | $39 | ✅ 実機 | 14 |
| LambdaTest HyperExecute | enterprise 見積り | 公開価格なし | — | 直接比較不能 15 |
MPT Linux (主) + BrowserStack Automate (Safari 専用) の試算:
| 項目 | 値 |
|---|---|
| MPT Linux 5,000 min/月 | $50/月 |
| BrowserStack Automate (Safari 用、1 並列) | $175/月 |
| 合計月額 | $225/月 |
| 年間 (年契ベース) | $2,700/年 |
| 1 周目 BrowserStack 単体 $225/月 比較 | 同等コスト、カバレッジは MPT で Linux/Windows 拡張 |
並列度を上げた場合、MPT は per-minute 課金のためテスト時間に比例 (固定費なし)、BrowserStack は並列度 × 月額となるため、並列拡張時の限界費用は MPT が圧倒的に有利。
strategy:
matrix:
target:
# MPT (Linux ホスト) で 80% カバー
- { host: "mpt-linux", browser: "chromium" }
- { host: "mpt-linux", browser: "firefox" }
- { host: "mpt-linux", browser: "webkit" }
# MPT (Windows ホスト) で Edge / Windows 固有確認
- { host: "mpt-windows", browser: "msedge" }
- { host: "mpt-windows", browser: "chrome" }
# BrowserStack で macOS Safari 実機
- { host: "browserstack", os: "macOS Sonoma", browser: "safari" }
fail-fast: false
max-parallel: 10| 項目 | 値 | 理由 |
|---|---|---|
| 並列度 | MPT 8 並列 + BrowserStack 2 並列 (計 10) | MPT は per-minute なので並列拡張のコスト増は実時間短縮で相殺 |
| リトライ回数 | 2 (ネットワーク起因のみ) | テスト本体の失敗はリトライしない |
| タイムアウト | アクション 60 秒 / テスト 180 秒 / セッション 900 秒 | flaky 抑制 |
| Visual AI 設定 | matchLevel: content、領域マスク明示、誤検知率目標 1%
未満 |
DPI 差を吸収 |
| DPI テンプレート | CI 内で 1x / 1.5x / 2x / 3x の 4 種を動的生成 | macOS Retina / Windows 4K 差を吸収 |
| DRM 領域 | <video>.currentTime を 1 秒間隔で polling、5
秒以内の進行を成功と判定 |
スクリーンショット取得は試みない |
| axe-core | 全画面遷移後に afterScreenshot で実行 |
アクセシビリティを自動検出 |
deviceScaleFactor を固定しない:
ベースラインが不安定化| 対立項目 | 主張 | 裁定 |
|---|---|---|
| MPT 主採用 vs BrowserStack 主採用 | principal_engineer: BrowserStack 主力 (ロックイン懸念) / qa_lead・ux_designer・devops_engineer・product_strategist: MPT 主採用 + BS 補完 | MPT 主採用。コスト削減効果が大きく、Safari 分離設計でカバレッジは維持 |
| 商用 Visual AI ベンダー | qa_lead: Sauce Labs / 他: BrowserStack | BrowserStack Screenshot Compare。Sauce Labs の DRM 領域無視オプションは未確認、BS は実績あり |
| DRM フォールバック設計 | principal_engineer・qa_lead: 手動レビュー主体 / ux_designer・devops_engineer・product_strategist: 商用 Visual AI DRM モード活用 | 手動レビュー主体。商用 AI の DRM モード信頼性が未確立、人手レビューで再現性を確保 |
| アクセシビリティ axe-core 統合 | ux_designer: 必須 / principal_engineer: コア基盤先 / qa_lead: 別レイヤ | axe-core を別レイヤで段階的導入。Visual Diff と並行実行で保守性確保 |
| マルチモーダル LLM 採否 | 全員: 不採用 (1 周目で採用していた principal_engineer も裏取り後に転換) | 本番 CI 完全排除。問1 council 2 周目と整合 |
<video>
プロパティ監視 + 手動レビュー に確定 ── 1 周目「LLM
推論」を廃止afterScreenshot フックでの並行実行方式本書の結論を生成した円卓会議の transcript は以下に保存されている (本プロジェクトとは別ディレクトリの ds4_roundtable プロジェクト配下):
~/Documents/Claude/Projects/EPUBアノテーション検証/ds4_roundtable/ds4_out/council/774a5f77-39e1-4993-a081-3d1342c0dcf5/transcript.md~/Documents/Claude/Projects/EPUBアノテーション検証/ds4_roundtable/ds4_out/council/d40c920b-e464-4f84-915d-d7f6ae9004c2/transcript.mdMicrosoft Azure — Azure App Testing pricing. https://azure.microsoft.com/en-us/pricing/details/app-testing/↩︎
Microsoft Azure — Playwright Testing pricing (旧 MPT、現 Playwright Workspaces へ統合). https://azure.microsoft.com/en-us/pricing/details/playwright-testing/↩︎
Microsoft Learn — Playwright Workspaces 概要 (2025-11-03 更新). https://learn.microsoft.com/en-us/azure/app-testing/playwright-workspaces/overview-what-is-microsoft-playwright-workspaces↩︎
Playwright 公式 — Browsers ドキュメント (Safari 公式非サポートを明記). https://playwright.dev/docs/browsers↩︎
BrowserStack docs — Playwright Safari. https://www.browserstack.com/guide/playwright-safari↩︎
Anthropic — Introducing Claude 3.5 Sonnet & Computer Use (public beta caveat). https://www.anthropic.com/news/3-5-models-and-computer-use↩︎
Anthropic — Claude Opus 4.6 System Card (2026-02、hacking / 捏造 behavior 自己開示). https://www-cdn.anthropic.com/0dd865075ad3132672ee0ab40b05a53f14cf5288.pdf↩︎
Microsoft Azure — Azure App Testing pricing. https://azure.microsoft.com/en-us/pricing/details/app-testing/↩︎
Microsoft Azure — Playwright Testing pricing (旧 MPT、現 Playwright Workspaces へ統合). https://azure.microsoft.com/en-us/pricing/details/playwright-testing/↩︎
BrowserStack 公式 pricing. https://www.browserstack.com/pricing↩︎
BrowserStack 公式 pricing. https://www.browserstack.com/pricing↩︎
Sauce Labs 公式 pricing. https://saucelabs.com/pricing↩︎
Sauce Labs 公式 pricing. https://saucelabs.com/pricing↩︎
TestMu AI (旧 LambdaTest) 公式 pricing. https://www.testmuai.com/pricing/↩︎
TestMu AI — HyperExecute (公開価格なし、enterprise 見積りのみ). https://www.testmuai.com/hyperexecute/↩︎