本書の前提: 「CI/CD サイクルを捨て、リリース直前 / 月次 / 四半期など 手動トリガーの回帰テスト のみを実行する」運用に最適化したベストプラクティス。
底本:
次世代検証ツール選定案_問3_デスクトップWeb.md(CI/CD 統合前提) の結論を、回帰テスト前提に書き直したもの。調査日: 2026-06-08
Playwright をコアフレームワークとする方針は維持しつつ、Microsoft Playwright Workspaces の per-minute pay-as-you-go 課金特性を最大限活用する。BrowserStack も Pro 月額固定から Live $39/月に縮退、Visual AI は OSS で代替。回帰テスト前提では MPT の経済性が CI/CD 前提時よりさらに際立つ。
| レイヤ | CI/CD 前提版 | 回帰テスト版 | 変更理由 |
|---|---|---|---|
| 自動化基盤 | Playwright + MPT (主) | Playwright + Microsoft Playwright Workspaces (per-minute) | per-minute 課金は回帰運用に最適、変更なし |
| Safari 検証 (macOS 実機) | BrowserStack Automate $175/月 | BrowserStack Live $39/月 + Playwright スクリプト | 月次集中実行なら Live で十分 |
| 視覚検証 (主救済) | 自社 Visual Diff + BrowserStack Screenshot Compare | 自社 Visual Diff (PixelMatch / SSIM) のみ | 商用 AI 不要 |
| DRM フォールバック | <video> 監視 + 閾値超え時手動 |
<video> 監視 +
必ず手動目視レビュー |
月次運用では手動が常態 |
| アクセシビリティ | axe-core を別レイヤで CI 統合 | axe-core を手動実行で活用 | CI 統合不要 |
| マルチモーダル LLM | 本番排除 | 変更なし | |
| 端末ファーム | MPT (Linux/Windows) + BrowserStack (Safari) | MPT (Linux/Windows、必要分のみ) + BrowserStack Live (Safari、手動 + 月 1 回 Playwright 実行) | per-minute + 月額最低プランの組合せ |
CI/CD 前提版でも MPT を主基盤としたが、回帰テスト前提ではその経済性がさらに際立つ:
| 想定実行量 | CI/CD 前提 (月) | 回帰テスト前提 (月) |
|---|---|---|
| Linux ホスト 5,000 min/月 | $50/月 | — |
| Linux ホスト 500 min/月 (回帰のみ) | — | $5/月 |
| Windows ホスト 500 min/月 (回帰のみ) | — | $10/月 |
| 30 日 100 min 無料枠 | (CI 連続実行で即消費) | 回帰 1 回分が無料枠で完結する可能性 |
月次回帰で 200-500 test minutes 程度であれば、年間 $60-180 で MPT を運用できる。
CI/CD 前提版では BrowserStack Automate Pro $225/月 (Safari 専用 1 並列) を採用したが、回帰テストでは:
BrowserStack Screenshot Compare は CI で毎日大量比較を行う前提で TCO が安い設計。月次運用では:
deviceScaleFactor
固定で対処// Playwright Test の組み込み visual comparison でも代用可能
import { test, expect } from '@playwright/test';
test('top page visual regression', async ({ page }) => {
await page.setViewportSize({ width: 1920, height: 1080 });
await page.goto('https://example.com/');
// Playwright 公式の toHaveScreenshot は内部で pixelmatch を使用
await expect(page).toHaveScreenshot('top.png', { maxDiffPixelRatio: 0.01 });
});axe-core は Playwright と統合して @axe-core/playwright
で accessibilityViolations を取得できる。CI 統合せずに
回帰実行時の最終チェック として使う:
import AxeBuilder from '@axe-core/playwright';
test('top page a11y', async ({ page }) => {
await page.goto('https://example.com/');
const results = await new AxeBuilder({ page }).analyze();
// CI 不採用なら、test レポートを人間が読む前提で fail にしない選択肢もあり
console.log(`A11y violations: ${results.violations.length}`);
});<video> プロパティ監視 +
必ず手動目視CI/CD 前提版では「閾値超え時のみ手動」だったが、月次回帰では:
<video>.currentTime /
<video>.readyState の polling と、再生開始 / 一時停止
/ シーク等の基本操作シナリオを Playwright で実行する| ファーム | CI/CD 前提版 (月額) | 回帰テスト版 (月額) | 年額差分 |
|---|---|---|---|
| MPT Linux | $50 | $5 | $540 削減 |
| MPT Windows | $100 | $10 | $1,080 削減 |
| BrowserStack | $175-225 | $39 | $1,632-2,232 削減 |
| BrowserStack Screenshot Compare | (含む) | $0 (OSS) | — |
| 合計年額 | 約 $3,300-3,900/年 | 約 $648/年 | 約 $2,700-3,300 削減 (~80%) |
| 領域 | CI/CD 前提版 | 回帰テスト版 |
|---|---|---|
| 通常 DOM 操作 | Playwright auto-wait + ベースライン | 変更なし |
| Canvas / WebGL | 自社 Visual Diff + 商用 Visual AI | 自社 Visual Diff のみ + 手動目視 |
| 複雑な layout 差分 | BrowserStack Screenshot Compare | PixelMatch / SSIM + 手動目視 |
| DRM | <video> プロパティ + 閾値超え時手動 |
<video> プロパティ +
必ず手動目視 |
| アクセシビリティ | axe-core CI 統合 | axe-core 手動実行 (回帰時) |
| 観点 | 必須要件 |
|---|---|
| コアフレームワーク | Playwright (OSS) |
| MPT 採用 | per-minute 課金、Linux 中心、Windows は必要分のみ |
| Safari 検証 | BrowserStack Live (月額最低プラン) 経由で実機実行 |
| 視覚比較 | OSS (PixelMatch / SSIM / Playwright built-in) を主軸 |
| DPI 対応 | Playwright deviceScaleFactor を 1x / 1.5x / 2x / 3x
で明示固定 |
| アクセシビリティ | axe-core を回帰実行時に必ず実行 |
| マルチモーダル LLM | 判定オラクルとして使わない (デバッグ補助のみ可) |
| 番号 | 作業 | 担当 | 想定時間 |
|---|---|---|---|
| 1 | Playwright / @axe-core/playwright
のバージョン更新確認 |
QA | 10 分 |
| 2 | ローカル MacBook / Windows PC で
npx playwright install |
QA | 5 分 |
| 3 | MPT で Linux ホスト (Chrome / Firefox / Edge) を実行 | QA | 30-60 分 |
| 4 | MPT で Windows ホスト (Edge / Chrome on Windows 固有確認) を実行 | QA | 30-60 分 |
| 5 | BrowserStack Live で macOS Safari 実機にて Playwright スクリプト実行 | QA | 30-60 分 |
| 6 | PixelMatch / SSIM 差分検出された画面の目視確認 | QA | 1-2 時間 |
| 7 | DRM 領域シナリオの手動目視レビュー | QA | 30 分 |
| 8 | axe-core レポートのアクセシビリティ違反確認 | QA + Designer | 1 時間 |
| 9 | レポート作成、Issue 起票 | QA | 1 時間 |
| 合計 | 約 6-8 時間 (1 営業日以内) |
| 対立項目 | CI/CD 前提版の裁定 | 回帰テスト版の裁定 |
|---|---|---|
| MPT 主採用 vs BrowserStack 主採用 | MPT 主採用 | 変更なし (per-minute 課金特性は回帰でも優位) |
| 商用 Visual AI ベンダー | BrowserStack Screenshot Compare | OSS (PixelMatch / SSIM) に変更 |
| DRM フォールバック設計 | 手動レビュー主体 (閾値超え時) | 必ず手動レビュー |
| axe-core 統合 | 別レイヤで CI 統合 (段階的) | 回帰実行時に手動実行 |
| マルチモーダル LLM | 本番完全排除 | 変更なし |
| BrowserStack プラン | Automate $175/月 | Live $39/月 に縮退 |
toHaveScreenshot の誤検知率実測: 商用 Visual AI
<0.5% に対しどこまで近づけるか以下のいずれかが発生した時点で、本書を破棄し CI/CD 前提版
(次世代検証ツール選定案_問3_デスクトップWeb.md)
への移行を検討する:
本書は底本 次世代検証ツール選定案_問3_デスクトップWeb.md
の参考文献をすべて引き継ぐ。回帰テスト版固有の追加情報は以下:
toHaveScreenshot
の内部実装): https://playwright.dev/docs/test-snapshots@axe-core/playwright npm: https://www.npmjs.com/package/@axe-core/playwrightBrowserStack docs — Playwright Safari ガイド. https://www.browserstack.com/guide/playwright-safari↩︎