ビジュアルリグレッション・クロスブラウザEU ホスティング · GDPR 準拠

設計したとおりの UI を出荷するCI をすり抜けたそれではなく

ScanU は、プロフェッショナルな Web チーム向けのビジュアルリグレッションおよびクロスブラウザ・スクリーンショットテストプラットフォームです。利用者が実際に使うブラウザとビューポートで、重要なページを 1 ピクセル単位で正確にレンダリングし、ユニットテストや E2E テストが静かに見逃すレイアウトの変化を浮かび上がらせます。

ブラウザ
Chromium · Gecko · WebKit
ビューポート
デスクトップ · タブレット · モバイル
ホスティング
EU · GDPR 準拠
連携
CI/CD 対応

ScanU とは

単なるスクリーンショット収集ツールではなく、ビジュアル QA プラットフォーム

ScanU は、リリース品質のラストワンマイル — ユーザーが実際に目にする部分 — を、チームが動ける「シグナル」に変えます。指定したページのピクセル安定なスクリーンショットを取得し、明示的なベースラインを保持したうえで、以降の実行を重要なブラウザとデバイスごとにそのベースラインと比較します。

多くのチームは、すでにリンター、型チェック、ユニットテスト、 E2E フローを回しています。しかしそれらがグリーンのままでも、 ボタンが 12 ピクセル落ち、モーダルがパディングを失い、Safari でメニューが崩れ、モバイルのブレークポイントがヒーローを 静かにリフローする、ということは起こります。機能テストは 振る舞いを検証しますが、ページが「どう見えるか」は検証しません。それこそがスクリーンショットテスト ツールの役目であり、ScanU が大仰さなしに行うことです。

内部では、ScanU は実在のレンダリングエンジン — Chromium、Gecko、WebKit — を、指定された URL またはコンポ ーネントプレビューに対して駆動します。各実行は、設定した (ブラウザ、ビューポート) のペアごとに決定論的なキャプチャ を生成します。最初に受理された実行がベースラインとなり、 それ以降は、すべての pull request、すべてのデプロイ、 すべてのスケジュール実行が、そのベースラインに対する diff となります。どのようなビジュアルリグレッションも、 コードレビューが変更された行を示すのと同じ要領で、レビュー 可能な変更として明示されます。

フルの 比較パイプライン は、スクリーンショット diff を本番ワークフローで本当に 使えるものにするための細部を引き受けます。アンチエイリア ス耐性、アニメーションの安定化、フォント読み込み、動的 コンテンツのマスキング、スクロール時のキャプチャ、そして 知覚的な diff しきい値 — サブピクセル単位のフォント ヒンティングの変化が、本物のレイアウトリグレッションを かき消さないようにするためです。

ScanU は、UI をユーザーとの契約として扱うチームのために 作られています。ビジュアルリグレッションテスト・ツール であり、クロスブラウザ・スクリーンショット比較ツールで あり、diff のレビューサーフェスでもある — それらを一つの プラットフォームにまとめ、ビルドとリリースゲートのあいだ に置きます。

ピクセル安定なキャプチャ

フォント読み込み待ち、アニメーションのピン留め、動的コンテンツのマスキングを備えた決定論的レンダリング — diff には本物のリグレッションが映り、ノイズではありません。

クロスブラウザ・マトリクス

Chromium、Gecko、WebKit を並列駆動し、ユーザーが実際に使うデスクトップ、タブレット、モバイルのビューポートを網羅します。

レビュー可能な diff

ベースライン、現在のキャプチャ、ハイライト付き diff を横並びに。承認・却下・ベースライン更新は常に明示的なアクションで、静かに流されることはありません。

CI/CD ネイティブ

既存のパイプラインの中でそのまま動作します。ステータスチェック、PR コメント、成果物のリンクは、エンジニアがすでにコードレビューをしている場所に表れます。

デザインシステムとの親和性

ScanU を Storybook、コンポーネントのサンドボックス、あるいはライブ URL に向けてください。トークン変更やコンポーネントリファクタリングは、リリース前に率直なビジュアル監査を受けられます。

EU ホスティング

スクリーンショットとメタデータは欧州のインフラに保管され、GDPR に準拠したデータ取り扱いが行われます — データ所在要件が厳しいチームにも適しています。

なぜ重要か

ビジュアルリグレッションは、ユーザーの目に届くタイプのバグです

ビジュアルバグのコストは、開発時間で測られることはほとんどありません。測られるのは信頼です — 製品を開き、どこか微妙におかしいと感じたユーザーが、静かに「このチームは細部を気にしないのだな」と結論づけるときの、その信頼です。失った信頼を取り戻すのは難しく、ほとんどの場合、バグを出さない方が安上がりです。

機能テストは一つの問いによく答えてくれます。「クリックした とき、ボタンは正しいことを行うか?」 しかし、クリックする 前に起きること — ボタンの色が正しいか、サイズが正しいか、 位置が正しいか、360 ピクセルの画面で読めるか、直近の CSS リファクタ後にそもそも見えているのか — については沈黙し ます。リリース日インシデントの大半は、このすき間に住んで います。

私たちが目にする実際のリグレッション — そして ScanU が 捕捉するために設計されているもの — は、いくつかの予測 可能なトリガーの周りに集中する傾向があります。

  • CSS のリファクタリングが、ある一つのブレークポイントで flex コンテナの gap を潰す。デスクトップでは レイアウトは同じに見えるが、768 ピクセルのタブレットでは 2 枚のカードが重なり始める。
  • デザイントークンの更新で、すべての spacing 値が 2 ピクセル 動く。どこも落ちないが、緻密に整えられていた数十の コンポジションが、静かにバランスを失う。
  • サードパーティウィジェット — Cookie バナー、ライブ チャット、広告スロット — が静かなアップデートを出し、 first paint をずらす。コードを 1 行も触っていないのに、 Core Web Vitals が一晩で悪化する。
  • フレームワークのアップグレードがデフォルトの font-feature スタックを差し替える。ロングフォームの ページで本文が半行分リフローし、ヒーローの CTA が突如 ファーストビューの下に沈む。
  • フィーチャーフラグのロールアウトが DOM を並べ替える。 Safari ではモーダルの stacking context が変わり、閉じる ボタンがクリックできなくなる。Chrome ではすべて正常に 見える。

どれもアサーションを赤くしません。しかしすべてがユーザー 体験を損ねます。ScanU の仕事は、この二番目のタイプの 破損を、赤いユニットテストと同じくらい見やすく、レビュー しやすく、ブロックしやすいものに変えることです。diff が pull request に現れれば、デザイナーは、レビュワーが関数 シグネチャに口を出すのと同じ要領で意見を返せます — マージ の前に、そして本番に到達する前に、です。

この転換 — 「ステージングで誰かが気づくのを祈る」から 「ビジュアルの変更をコードの変更と同じようにレビューする」 への移行 — が、現代のリリースパイプラインにおけるビジュアル リグレッションテストツールの中心的な価値です。

クロスブラウザテスト

あなたがリリースする Web は、あなたがテストした Web ではない

クロスブラウザテストは、IE6 時代から持ち越された懐古趣味の税ではありません。現代のエンジン — Chromium、Gecko、WebKit — は、あなたのレイアウトが静かに依存しているディテールで今なお食い違っており、本番障害のうち驚くほどの数が、誰も監査しなかったレンダリング差異にたどり着きます。

リグレッションが一つのエンジンだけに現れるとき、その理由は たいてい三つのいずれかです。あるエンジンで後に出荷された 機能が使われている、レイアウトがプラットフォームごとに 異なる指標(スクロールバー幅、フォントのベースライン、 スムージングアルゴリズム)に依存している、あるいは user-agent で条件分岐された polyfill が現場では開発機とは わずかに違う挙動をしている — の三つです。いずれもエンジン 非依存のテストスイートからは見えません。

クロスブラウザ監査でよく見る例:

  • フォーム入力 — とりわけ datedatetime-localselect — は WebKit と Chromium で目に見えて異なる chrome で レンダリングされ、隣接要素が数ピクセル動くことがある。
  • スクロールバー領域の算術:macOS の WebKit は既定で スクロールバーを隠し、Windows の Chromium は幅を予約 する。片方でピクセル完璧なレイアウトは、もう片方では 切れるか、余白が増える。
  • サブピクセルのフォントヒンティングはエンジン間で異なる。 Chromium では整って見える line-height が、Gecko では CTA をファーストビューの下に押し出す ことがある。
  • flex コンテナ内の CSS gapaspect-ratio、そしてコンテナクエリは、 各エンジンに若干異なる時期に着地した。ビルドが古い ベースラインを狙っていると、フォールバック経路は メイン経路とは異なるレンダリングになり得る。
  • システムレベルの設定 — prefers-color-schemeaccent-color、そして Windows の forced-colors — はプラットフォームによって 異なる形で DOM に伝搬し、ローカルの開発環境では見落とし やすい。

ScanU は、設定されたすべてのエンジンとビューポートに 対して各ページを 1 回の実行で捕捉します。フィクスチャと タイミングフックを同一にしたうえで行われるため、表示 される diff は本物のレイアウト差異であり、ブラウザごとに ハーネスが違うことによる副作用ではありません。完全な クロスブラウザ機能 は製品ページに記載されています。設定したマトリクスが、 実行のたびに捕捉されるマトリクスです。

デザインシステムを提供するチーム、あるいはビジュアル アイデンティティがブランドの一部である製品にとって、 このマトリクスは贅沢品ではありません。お客様が Safari で 目にするものが、あなたが Chrome で承認したものと一致して いることを確かめる、唯一の方法です。

例:マーケティングホームページに対する ScanU のクロスブラウザ実行
ブラウザビューポートステータス
Chromium 1241440 × 900ベースラインと一致
Firefox 1261440 × 900ベースラインと一致
WebKit (Safari 17)1440 × 900ビジュアル diff · 要レビュー
Chromium 124768 × 1024ベースラインと一致
WebKit (Safari 17)768 × 1024レイアウトシフトを検出
Chromium 124390 × 844新しいベースラインが保留中

スクリーンショット比較の仕組み

決定論的なキャプチャ、誠実な diff、明示的なレビュー

ビジュアル diff ツールの有用性は、生成する diff の SN 比に尽きます。ScanU のキャプチャパイプラインは、二つの実行の間で変わるのが「あなたが実際に変更したもの」だけになるよう設計されています — 周囲のフォント、アニメーション、タイムスタンプ、広告枠といった「書き割り」は変わりません。

各実行は 3 段階のパイプラインです。まず ScanU は各ブラウザ エンジンでテスト対象のページまたはコンポーネントへ遷移し、 設定された一式の readiness シグナル — フォント読み込み 完了、画像のデコード完了、ネットワークの静止、data-ready 属性、あるいはカスタムの JavaScript プローブ — を待機し、すべての CSS アニメーションを最終 フレームにピン留めします。次に、同じ実行のなかで、設定 されたそれぞれのビューポートでページをキャプチャし、長い ページには scroll-stitching を使って可視領域だけでなく 完全なアーティファクトを取得します。最後にそのキャプチャ を承認済みベースラインと比較し、(ブラウザ、ビューポート) のペアごとに結果を出します:一致、許容範囲内、または 有意に異なる、のいずれかです。

比較そのものは素朴なピクセル diff ではありません。ScanU は 知覚的モデルを用い、アンチエイリアス、サブピクセル レンダリング、色空間のわずかな揺らぎを理解します。これに より、WebKit のカーニングの癖がバグと誤認されることは ありません。読み込みごとに変わることが分かっている領域 — ライブデータ、相対時刻、ランダム化コンテンツ、カルーセル — には明示的なマスクを設定でき、それらの領域は diff に ノイズをまったく足しません。

本物の変化が現れたとき、プラットフォームは 3 枚の同期 されたペインを提示します:ベースライン、現在のキャプチャ、 そして動いた箇所を正確に示す diff オーバーレイです。各 変更にはレビュー可能な判断 — 承認、却下、ベースラインの 更新 — が一つずつ記録され、その判断はプロジェクト履歴の 一部になります。暗黙のドリフトも、自動承認もありません。 ベースラインが動くのは、権限のある人間が「動かす」と 明言したときだけです。

同じパイプラインは 3 つのエントリポイントから駆動できます: ライブ URL(本番、ステージング、PR プレビュー)に対して、 静的サイトあるいはビルドされたアセットバンドルに対して、 Storybook スタイルのサンドボックス内のコンポーネント プレビューに対して。多くのチームは、一つ目をリリース ゲートとして、二つ目をデプロイ成果物のために、三つ目を デザインシステム作業のために使います — いずれも同一の ベースライン保管庫に注ぎ込みます。

ベースライン · 現在 · Diff — レビューの 3 つのペイン
ベースライン

このページ、このブラウザ、このビューポートに対する最後に承認されたレンダリング。レビュワーが明示的に更新するまで凍結されます。

現在

この実行のキャプチャ。同じフィクスチャ、同じタイミングフック、同じビューポート — テスト対象のコードだけが変わっています。

Diff オーバーレイ

アンバー色でハイライトされた領域は、現在のレンダリングが設定された許容範囲を超えてベースラインから逸脱した箇所を示します。

ScanU が向いているチーム

UI をリリースを左右するサーフェスとして扱うチーム

ScanU は、仕事の評価がユーザーに見えるもので決まるチームのために作られています。聞こえるより広い集団です — デザイナーやフロントエンドエンジニアだけでなく、リリース判断が「特定のブラウザで、特定のビューポートで、特定の日に UI が正しく表示されるか」に依存するすべての人を含みます。

フロントエンド / フルスタックエンジニア は、ScanU を pull request パイプラインの最終段として 使います:ビルドがグリーン、ユニットテストが通り、E2E スイートも満足している — そのうえでビジュアル diff が、 変更がデザイナーの意図と一致することを確認するか、 パッチを読んだだけでは気づけないリグレッションを浮かび 上がらせるかのどちらかを行います。結果として、リリース 後の火消しに費やす時間は減り、本当にプロダクトを前進 させる仕事に使える時間が増えます。

QA エンジニアは、セレクターを書き直す ことなくスケールするテスト層を手に入れます。ビジュアル スイートへの新ページ追加は、URL とベースラインだけで 済みます — 1 週間かけて脆い XPath と格闘する必要は ありません。UI リグレッションを捕まえる層が、ユーザー からの事後報告を待つ Slack メッセージではなく、テスト ピラミッドの一級市民になります。

デザインシステム / プラットフォームチーム は、ライブラリ内のすべてのコンポーネント サンドボックスに対して ScanU を走らせます。あるトークン が変われば、依存するコンポーネントはすべて自動的に ビジュアル監査を受けます。コンポーネントがリファクタ されれば、下流の利用者は新版が着地する前に diff をレビュー できます。こうしてデザインシステムは、何年にもわたる 静かなリグレッションの蓄積を避けられます。

プロダクト / エンジニアリングリード は、レビューサーフェスを証跡として使います。リリース ノートには、各リリースで承認されたビジュアル diff への リンクを含められます。ポストモーテムでは、リグレッション が捕捉されたのか、見落とされたのか、明示的に受け入れ られたのかを参照できます。時間が経つにつれ、プラット フォームは UI の変遷と、各段階で承認した人物の記録に なっていきます。

ユースケース

制作会社の納品からデザインシステムのガバナンスまで

同じプラットフォームが、まったく異なるワークフローを支えます。共通するのは、これらのチームがいずれも「お客様が気にするペース」で UI をリリースしており、UI が「あるべき姿」にあるかを一目で確認する方法を必要としている、という点です。

チームの形がどうであれ、ScanU は通常、次の 5 つのうちの いずれかの理由で採用されます:ビジュアルリグレッションが 捕まえられたはずの直近の本番インシデント、人手での監査が 不可能なデザインシステム移行、「テストがグリーン」以上の リリースゲートを要する CI/CD ワークフロー、ビフォー/ アフターの証跡を必要とする顧客向け納品物、あるいは EU ホストのテストツールを選好するコンプライアンス姿勢です。 これら 5 つすべての背後には共通の CI/CD 連携 があり、トリガーが PR でもマージでも夜間スケジュールでも、 同じパイプラインが仕事をします。

デジタル制作会社

クライアントに、サイトごとの週次ビジュアル差分を提供。契約にあるすべてのブラウザで、各スプリントごとに「ビフォー/アフター」の証跡を、1 つのレポートにまとめます。

QA / リリースエンジニアリング

テストピラミッドにビジュアル層を追加。新しいページは URL とベースラインでスイートに加わり — 脆いセレクターも、手作りのスクリーンショットスクリプトの保守も不要です。

フロントエンドチーム

スクリーンショット diff は pull request 上にインラインで表示されます。レイアウトリグレッションは本番でも顧客の Slack スレッドでもなく、レビューで捕まります。

スタートアップ / スケールアップ

ホームページを壊さずに速く動く。リデザイン、A/B テスト、トークン移行をまたいで、マーケティングサイトをピクセル安定に保つ決定論的なセーフティネット。

デザインシステム

各コンポーネントサンドボックス上でビジュアルカバレッジを実施。トークン変更、テーマスワップ、コンポーネントリファクタは、ライブラリの公開前に自動で監査を受けます。

レスポンシブデザイン

モバイル、タブレット、デスクトップのブレークポイントを同じ実行で検証。レスポンシブのテストは、スクリーンショットを撮り回る雑務から、レビューのステップになります。

CI/CD とリリースの確信

あなたのパイプラインがすでに読める、ビジュアルなシグナル

リリースの確信は感覚ではなく、リリースされようとしているものの真実を語るパイプラインです — テストランナーが意見を持てない部分も含めて。ScanU はそのパイプラインに、ステータスチェック、PR コメント、保存済み成果物として接続し、あらゆるポストモーテムから参照できます。

連携モデルは意図して退屈です:ScanU のキャプチャステップ は、既にテストを走らせているのと同じジョブで走り、PR 上に pass、review-needed、fail のいずれかを報告します。その ステータスは、他の必須チェックと同じように扱われます。 チームはすでにパイプラインの緑・黄・赤の読み方を知って います — そのリズムの中にビジュアルリグレッションチェック を差し込むことで、新しい思考モデルを求めずに安全の次元を 一つ加えられます。

内部では、ScanU は現代の CI/CD の現実を前提に設計されて います:

  • 決定論的な実行。同じページを、同じ ブラウザ、同じビューポート、同じ安定化フックで撮れば、 同じバイトが得られます。これが diff に意味を持たせる 前提です。
  • 並列実行。ブラウザとビューポートは 並列で走り、巨大なマトリクスは複数のランナーに分散 します。60 ページのサイトを 3 エンジン × 3 ビューポート で回しても、数分のチェックであり、一晩かけるバッチでは ありません。
  • 誠実なステータス。新しいページは失敗 ではなく「保留中のベースライン」を生み、既知の flakey な領域は無視ではなくマスクされ、本物のリグレッション はピクセルノイズの壁ではなくリンク付きのレビュー要求 になります。
  • プレビュー環境にも優しい。PR プレビュー は独自の保留中ベースラインを持ち、マージと承認の後に 初めて主ベースラインへ昇格します。ブランチ間の漏れは ありません。
  • 成果物が主役。各実行はベースライン、 現在の画像、diff の完全なセットを安定した URL で保存 します。リリースノート、インシデントレポート、監査は、 リリースされたときの視覚状態を正確に参照できます。

ステップバイステップの CI/CD 連携ガイド には、GitHub Actions、GitLab CI、Bitbucket Pipelines、 セルフホストランナー向けの具体的な配線方法が記載されて います。一般的なケースはジョブを 1 つ追加するだけで済み、 高度なケースは段階的リリースを横断してベースラインを 前進させる環境マトリクスになります。

GDPR · EU ホスティング · プライバシー

あなたのデータの居場所を尊重するテストプラットフォーム

テストの成果物はデータです。スクリーンショットは、ページに出ていた個人情報 — ナビゲーションバーの名前、プロフィールメニューのメールアドレス、確認画面の注文番号 — を、意図せず取り込むことがあります。責任あるビジュアルテストプラットフォームは、それらの成果物を、反映元の本番データと同じ注意をもって扱います。

ScanU は欧州連合内で構築され、ホスティングされ、保管と 処理もすべて EU で運用されるインフラ上で行われます。 データ所在の義務を負うチーム — 規制産業、公共部門の バイヤー、プライバシーに敏感な B2B 顧客 — にとって、 これは好みではなく調達要件であることが多く、ScanU は 製品能力を犠牲にすることなくこの要件を満たすよう設計 されています。

この姿勢から、いくつかの意図的な設計判断が導かれます:

  • データ最小化。プラットフォームは スクリーンショットと diff に必要なメタデータだけを 保持します。diff に寄与しないページのソース、Cookie、 リクエストボディは吸い上げません。
  • 機微な文脈では既定でマスキング。 個人情報を含むと分かっているフィールド — アカウント ヘッダー、メールアドレス、注文番号 — はマスク領域と して宣言でき、キャプチャ画像は保管先に書き込まれた 時点ですでに編集済みになります。
  • アクセス制御。誰が diff を見られるか は一級の権限です。レビュワー、貢献者、外部監査人には 明示的なロールが付与され、すべてのベースライン更新は 承認者とともにログに残ります。
  • プロセッサの透明性。サブプロセッサ の一覧は公開され、バージョン管理されています。隠れた アナリティクスパイプラインがあなたのスクリーンショット を見ることはありません。
  • あなたが制御する保持期間。ベースライン と diff 成果物は、設定した期間だけ保持されます。古い 実行は静かに積み上がるのではなく、自動的に期限切れに なります。

完全なプライバシーポスチャ — サブプロセッサ、リージョナル ホスティング、DPA、保持期間 — については、 GDPR とデータ取り扱いに関するドキュメント をご覧ください。多くのチームにとって大事なのは短い答え です:あなたのスクリーンショットは EU にとどまり、 プラットフォームはそれが EU にとどまり続けるように 作られています。

違い

ScanU が汎用のテストツールではない理由

ビジュアルテストは混み合ったカテゴリです。ScanU を差別化するものの大きな部分は「やらないこと」です — 取らないショートカット、レビュー行列に流さないノイズ、そして diff の正しいレビューのされ方に対する意見です。

汎用のスクリーンショットツールは、テストランナーに貼り 付けるライブラリとして提供されることが多く、タイミング、 フォント、アニメーション、そして「1 ピクセルのずれは 本物のバグか丸め誤差か」という永遠の問いはあなたに任され ます。ScanU はより強い立場を取ります:プラットフォームが 決定論的なキャプチャを生み出せないのなら、それは プラットフォームの問題であって、あなたの問題ではない、と。 だからこそ、readiness シグナル、フォント読み込み、 アニメーション固定、scroll-stitching、知覚的 diff、マスク 領域はすべて組み込み機能であり、後付けの貼り合わせでは ありません。

価格設計も同じ論理に従います。ふつうのチーム — 数十 ページ、3 エンジン、3 ビューポート、1 つのパイプライン — にとって、ビジュアルカバレッジのコストは予算会議で弁護 する必要のある項目であってはいけません。完全な 価格ページ は、各ティアに含まれるもの、実行としてカウントされるもの、 上限がどこかを、明快な数字で書いています。自分たちが 設計したとおりの UI を出したいだけのチームに、カスタム 見積もりは必要ありません。

意見のあるキャプチャ、単なるライブラリではない

安定化、フォント readiness、アニメーション固定、scroll-stitching はプラットフォームの機能です — あなたのリポジトリで保守するスニペットではありません。

知覚的な diff、ピクセルカウンターではない

diff エンジンはアンチエイリアスとサブピクセルレンダリングを理解するため、目に見えない微小なズレが、本当に重要なリグレッションをかき消すことはありません。

レビューを一級のアクションとして

ベースラインが動くのは、権限のある人が変更を承認したときだけです。更新はすべて監査可能で、静かなドリフトは起こりません。

既定で EU ホスティング

スクリーンショット、メタデータ、レビュー履歴は EU のインフラ上にあります。その姿勢を守らなければならないチームにとって、オプトインは不要です。

ScanU が捕まえるもの

静かに本番に届くリグレッション

ビジュアルリグレッション・プラットフォームが捕まえるバグの大半は、エキゾチックなものではありません。小さく、派手さがなく、見落としやすい破損 — アサーションがそれを監視していないために、レビュワーのすり抜けを許すもの — です。以下は、ScanU が特に表面化させるべく作られたカテゴリの一例です。

ビジュアルバグは、少数の繰り返しパターンに集中します。 一件ずつ見ると些細に見え、どれも赤いテストなしで本番へ 届き得ます。これらはすべて、PR がマージされる前の次回の ScanU 実行で diff として表面化します。

  • spacing のずれ。gap ユーティリティが 16 から 20 ピクセルに上がり、均等に呼吸していたカード グリッドが、モバイルで急に詰まって見える。HTML は 変わっていないのに、レイアウトは変わっている。
  • デプロイ後のレイアウト破綻。ビルド パイプラインのアップグレードが、backdrop-filter を autoprefix していた PostCSS プラグインを取り落とす。 Safari では、ぼかしが効いていたナビゲーションバーが、 突然不透明になる。
  • 詳細度のずれによる CSS リグレッション。 Tailwind クラスの順序変更、新しいユーティリティレイヤー、 あるいはリファクタされたカスケードが、どのルールが勝つ かを微妙に変える — 見出しが数ページで強調色を失う。
  • レスポンシブのブレークポイント破綻。 新しいナビゲーション項目がタブレットのブレークポイント で溢れて 2 行目に回り、iPad や大型 Android でヒーロー がファーストビューの下に押し出される。
  • ブラウザ間のレンダリング差異。 text-wrap: balance に頼ったデザインが Chrome ではきれいに決まるのに、未出荷のエンジンでは バランスを欠いたまま。クロスブラウザのチェックなしでは、 開発者のマシンでは見えない。
  • フォントとタイポグラフィのドリフト。 フォントベンダーがサブセットを入れ替え、ウェイトが 100 だけずれ、マーケティングサイトのすべての段落が 1/4 行だけリフローする。コピーの密度は変わるが、 リポジトリのどの diff もそれを説明しない。
  • サードパーティウィジェットのリグレッション。 同意バナーのベンダーが出したアップデートで、ダーク テーマで「同意」ボタンが見えなくなる。コンバージョン 率は落ちるのに、あなたのテストはグリーンのまま。
  • デザインシステムのドリフト。ボタン コンポーネントがフォーカスリングのオフセットを変える。 依存する利用者は 20 人、影響を受けるページは 20。 20 ページを人手でレビューする人はいません。
  • 本番に逃げるビジュアルバグ。以上の どれもが、その週たまたま誰も開かないルートやブレーク ポイント、チームで日常的には誰も使わないブラウザを 掛け合わせた先で待っています。

機能概要 では、検出プリミティブ — 知覚的許容、マスク領域、 スクロールキャプチャ、ベースラインのブランチング — を さらに詳しく説明し、各プリミティブが上のどのカテゴリに 対応するかを示しています。多くのチームにとって短い答え はこうです:ビジュアルに変化があれば ScanU が気づき、 意図通りならワンクリックで受け入れ、そうでなければ 他の誰よりも先に捕まえた、ということです。

FAQ

ビジュアルテストツールを採用する前に答えておく価値のある質問

次のステップ

ユーザーより先にリグレッションを捕まえる

ビジュアルリグレッションテストがあなたのパイプラインに属するかを判断する最速の方法は、すでに出荷しているプロジェクトに対して一度走らせてみることです。ScanU は無料で始められ、既存の CI ジョブには数分で組み込め、最初の diff は次のコミットで生まれます。

多くのチームは、まずトラフィックの多い 1 ページを 3 つの ブラウザと 3 つのビューポートで動かすところから始めます。 プラットフォームの動きを見るのにも十分ですし、現行のテスト スイートが見落としたであろう次の本物のリグレッションを 捕まえるにも十分です。

そこから、チームの自信に合わせてスコープが広がっていきます: より多くのページ、より多くのブレークポイント、デザイン システムのコンポーネント単位カバレッジ、すべての pull request に対する必須のステータスチェック。打ち合わせの 予約も、特注のオンボーディングも、最低利用期間もありません。