mcpField
V
visual-regression-testing

visual-regression-testing

github.com/aj-geddesテスト・品質373721 回インストール34 週間前に更新
リポジトリ

visual-regression-testing について

フロントエンド開発者やテスター向けのビジュアル回帰テストガイドです。UI のスクリーンショットをバージョン間で比較し、意図しない変化を検出します。

主な機能

  1. 01スクリーンショットと基準画像の比較
  2. 02複数ビューポートでのレスポンシブ検証
  3. 03ブラウザー間テスト
  4. 04動的コンテンツへの対応
  5. 05コンポーネントの操作状態テスト

活用シーン

  1. 01CSS の回帰バグ検出
  2. 02PR のビジュアル変更レビュー
  3. 03デザインシステムのコンポーネント検証
  4. 04レイアウトのずれや重なりの発見

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill visual-regression-testing

インストール後、Claude Code で/visual-regression-testingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
backstopjs-configuration.md
chromatic-for-storybook.md
cypress-visual-testing.md
handling-dynamic-content.md
percy-visual-testing.md
playwright-visual-testing.md
testing-responsive-components.md
templates/
component-template.tsx

詳細

ビジュアル回帰テスト

目次

概要

ビジュアル回帰テストでは、UI コンポーネントやページのスクリーンショットを撮影し、バージョン間で比較して意図しない視覚的な変更を検出します。この自動化された方法により、従来の機能テストでは見逃される CSS のバグ、レイアウトの問題、デザインのリグレッションを検出できます。

使用するタイミング

  • CSS のリグレッションバグを検出する
  • ビューポートごとにレスポンシブデザインを検証する
  • 異なるブラウザーでテストする
  • コンポーネントの視覚的な一貫性を確認する
  • レイアウトのずれや重なりを検出する
  • テーマの変更をテストする
  • デザインシステムのコンポーネントを検証する
  • PR の視覚的な変更をレビューする

クイックスタート

最小限の実行例:

// tests/visual/homepage.spec.ts
import { test, expect } from "@playwright/test";

test.describe("Homepage Visual Tests", () => {
  test("homepage matches baseline", async ({ page }) => {
    await page.goto("/");

    // Wait for images to load
    await page.waitForLoadState("networkidle");

    // Full page screenshot
    await expect(page).toHaveScreenshot("homepage-full.png", {
      fullPage: true,
      maxDiffPixels: 100, // Allow small differences
    });
  });

  test("responsive design - mobile", async ({ page }) => {
    await page.setViewportSize({ width: 375, height: 667 }); // iPhone SE
    await page.goto("/");

    await expect(page).toHaveScreenshot("homepage-mobile.png");
  });

  test("responsive design - tablet", async ({ page }) => {
// ... (see reference guides for full implementation)

リファレンスガイド

references/ ディレクトリにある詳細な実装ガイド:

ガイド内容
Playwright Visual TestingPlaywright によるビジュアルテスト
Percy Visual TestingPercy によるビジュアルテスト
Chromatic for StorybookStorybook 向け Chromatic
Cypress Visual TestingCypress によるビジュアルテスト
BackstopJS ConfigurationBackstopJS の設定
Handling Dynamic Content動的コンテンツの処理
Testing Responsive Componentsレスポンシブコンポーネントのテスト

ベストプラクティス

✅ 推奨事項
  • 動的コンテンツ(タイムスタンプ、広告)を非表示にするか、モックに置き換えます
  • 複数のビューポートでテストします
  • アニメーションや画像の読み込みを待ちます
  • 一貫したビューポートサイズを使用します
  • キャプチャ中はアニメーションを無効にします
  • インタラクティブな状態(ホバー、フォーカス)をテストします
  • 承認前に差分を注意深く確認します
  • ベースラインをバージョン管理に保存します
❌ 避けること
  • 常にコンテンツが変化するページをテストしないでください
  • 小さくても妥当な差異を無視しないでください
  • レスポンシブテストを省略しないでください
  • デザイン変更後にベースラインを更新し忘れないでください
  • ランダムなデータを含むページをテストしないでください
  • しきい値を厳しくしすぎないでください(差分 0%)
  • ブラウザーやデバイスの違いを考慮したテストを省略しないでください
  • 未承認の差分をコミットしないでください

コメント