ビジュアルリグレッション:テスト戦略とフィクスチャ
ビジュアルリグレッションの範囲、レイヤー、フィクスチャ、シナリオ、エッジケース、アサーション、および受け入れ基準を定義します。このリファレンスは、採用の境界、失敗時の挙動、および観察可能な証拠を固定しつつ、環境固有の制限は設定可能なままにします。
パッケージの状態: リファレンスコンテキストは人間によるレビュー準備完了。契約とテストシナリオは完成していますが、採用実装がこれらを通過したという主張はありません。
決定事項
ビジュアルリグレッションには、バージョン管理されたリスクベースのテストプランを、再現可能なフィクスチャと所有されたゲートと共に採用します。このブロックは、代表的なポジティブ、境界、拒否、失敗、回復ケースから構築されたリリースおよびリグレッション契約として扱います。このパッケージはリファレンス契約であり、採用チームは自環境の証拠に基づいて数値制限、プロバイダー、管轄区域、運用オーナーを選択する必要があります。
範囲
- このテストブロックで説明されるビジュアルリグレッションのアクター、入力、出力、状態、ポリシーまたはスキーマのバージョン、および外部に見える結果。
- プライマリおよび代替インターフェース、バックグラウンド作業、キャッシュ、統合、サポートパス、および同じ境界を検証できる証拠。
- リファレンスを安全に適用するために必要な採用固有の設定、展開、回復、および検証の責任。
このブロックの外側
- すべての採用者に対して普遍的なベンダー、フレームワーク、管轄区域、数値閾値、保持期間、またはサービスレベル目標を選択すること。
- パッケージされたシナリオが下流の実装で実行されたことを主張すること、またはこのリファレンスが法的、セキュリティ、アクセシビリティ認証を付与すること。
契約
- 重要な各テストを振る舞い、境界、インシデント、リスクにトレースし、外部に見える結果または永続的な証拠をアサートする。
- クロック、ランダム性、識別、ネットワーク、データ依存を制御し、再実行時に製品の欠陥とフィクスチャの不安定性を区別できるようにする。
- 本番に敏感なデータや認証情報をフィクスチャに含めず、代表的な合成境界ケースおよび悪用ケースを生成する。
- フレークテストのリトライ、隔離、所有権、有効期限、削除基準を定義する。リトライで失敗を黙認成功に変えてはならない。
- フィクスチャのバージョン、環境、設定、観察結果、証拠の場所をすべての判定を伴う実行で記録する。
- 製品の失敗、依存の失敗、テストインフラの失敗、結論が出ない証拠をレポートで区別する。
- 固定されたビューポート、テーマ、ロケール、データ、フォント、アニメーション、ブラウザ、プラットフォームスケール、レンダリング環境に対して、バージョン管理されたベースラインと決定論的なコンポーネントおよびジャーニー状態をキャプチャする。
- レビュー済みの閾値と狭く所有されたマスクを使用し、意図的な変更は別に分類し、説明不能な差分がコンテンツ、操作、フォーカス、コントラスト、クリッピング、レスポンシブレイアウトに影響する場合は昇格をブロックする。
実装ガイダンス
- リスククラスを網羅する最小の決定論的フィクスチャセットを構築し、プライバシー安全なレビュー後にのみ本番由来のケースを追加する。
- フレームワークやベンダーの詳細を選択する前に、ビジュアルリグレッションの入力、出力、アクター、状態、不変条件、副作用、証拠をモデル化する。
- 適用されるビジュアルリグレッション契約またはポリシーバージョンをマテリアル状態と共に保存し、マイグレーション、リプレイ、サポートの判断を帰属可能にする。
- 制御された展開の背後にあるパスを導入し、期待される結果と観察された結果を比較し、採用証拠が完了するまでテスト済みの回復ルートを維持する。
失敗処理と安全策
- 壊れたテスト環境は製品の失敗とは異なるインフラ結果を報告し、必須のリリースゲートを満たせない。
- 無効または矛盾したビジュアルリグレッション状態は拒否または隔離される。実装は権限を拡大したり効果を重複させる値を推測してはならない。
- リトライは制限され、耐久的な識別を使用する。使い果たした後は検査可能な終端状態に達し、責任あるオーナーが存在する。
検証と運用
- クリーンな状態からスイートを2回実行し、順序、リトライ、並列実行が判定を変えないことを確認する。
- ビジュアルリグレッションの成功、拒否、検証失敗、依存失敗、リトライ使い果たし、回復を契約バージョンごとに監視し、機密ペイロードの詳細は含めない。
- ポリシー、スキーマ、依存関係、マイグレーション、境界の変更後にペアのポジティブおよびネガティブフィクスチャを再実行し、結果の証拠を保持する。
採用の前提条件
- 例の名前と値は具体的なフィクスチャであり、普遍的なデフォルトではない。採用者は文書化された証拠と所有権を通じて置き換える。
- 採用システムは認証済みの識別、耐久的な操作または記録バージョン、制限されたテレメトリ、および制御された変更パスを提供できる。
このパッケージの実行可能に見える例はフィクスチャおよび受け入れ契約です。
構造とメタデータを検証するためにコレクションバリデータを実行し、ターゲットリポジトリでシナリオを翻訳・実行してから実装証拠を記録してください。