Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

ユーザー境界の証明

ユーザーが観察できる結果を確認するため、その主張に影響する最外側のプロダクション境界に到達することで、ユーザー可視の動作に関する主張を証明します。ユニット、コンポーネント、およびコンパイルのチェックは引き続き有用ですが、それらだけではコマンド、ターミナル、ブラウザ、チャネル、デーモン、パッケージ、または外部サービスのパスを証明することはできません。

変更された境界に到達する、信頼できる最小の証明を使用してください。その境界を確実に検証できる場合は、対象を絞った自動テストが望ましいです。残りの不確実性が実際のターミナル、ブラウザ、オペレーティングシステム、パッケージマネージャー、ベンダーサービス、認証情報の交換、再接続、または副作用に依存する場合にのみ、手動または環境固有の証拠を追加してください。ライブテストは、Testing で定義されているフルスタックの実際の外部サービスレベルのために予約してください。

境界を選択

  1. PR が主張するユーザー操作と、観測可能な結果を記述してください。
  2. クレームが影響を及ぼす最も外側の本番境界を挙げてください: process、terminal、local または remote transport、HTTP または browser、channel API、provider API、承認フロントドア、execution wrapper、ライフサイクルオーナー、installer、または package。
  3. 現在の HEAD でその境界に到達する既存の自動検証を特定する。
  4. 主張の未検証部分に必要な証拠のみを追加してください。

名前付き境界に達したとき、新たな必須 CI カウントが求められます。現在必要なカバレッジと追加のエビデンスを正当化するギャップについては、CI & Actions に従ってください。

表示形式の変更

レイアウト、間隔、配置、折り返し、切り取り、タイポグラフィ、色、フォーカス、選択、レスポンシブ動作、グラフィックの構成、その他のプレゼンテーションに影響される状態が変更の結果やリスクに含まれる場合は、実際にサポートされているインターフェースでの確認が必要です。特定可能なリビジョンの zerocode、Webダッシュボード、デスクトップアプリ、対話型CLIまたはTUI、インストーラー、その他影響を受ける対象で、変更後の状態を確認してください。代表的なターミナルまたはビューポートのサイズを使用し、変更内容を周囲のレイアウトとともに示した、プライバシーに配慮した1つ以上のスクリーンショットを含めてください。数値的な寸法は、折り返し、切り取り、レスポンシブレイアウトなど、具体的なプレゼンテーション上の懸念を再現または評価するために必要な場合にのみ記録してください。

レンダリング済みテキストだけでは、自動的に視覚的な表示の変更になるわけではありません。レイアウト、スタイル、クリッピング、折り返し、フォーカス、選択、インタラクションの動作に影響しないセマンティックのみのレンダリング済みインターフェースの変更は、スクリーンショットの代わりに、最終的にサポートされるインターフェースの出力から得た exact-head の自動化された証拠を使用できます。その証拠は、最終レンダラーを通じて実際のインターフェースを動作させ、ユーザーが受け取る出力を観察し、変更された状態と観察された結果を明示する必要があります。ソースの検査、レンダリング前の構成、コンポーネント単体のスナップショット、ヘルパーレベルのアサーションは、これに該当しません。具体的な表示上の懸念がある場合は、上記の実際のインターフェースのスクリーンショット要件が再び適用されます。非対話的で、スタイルのない、決定的なプレーンテキストの CLI、stdout、stderr、またはログの変更は、表示に関する主張を含まず、レビュアーが具体的な表示上の懸念を指摘していない場合に限り、サポートされるインターフェースの正確な出力を使用できます。ロケールや端末幅など、出力の整形に関連するコンテキストを記録してください。

自動化によって生成されたスクリーンショットは、主張している境界において本番のインターフェースをレンダリングしている場合に許容されます。スクリーンショットを伴わない、意味情報のみのレンダリング証拠の場合、自動チェックは最終的なサポート対象インターフェースの出力を観測しなければなりません。たとえば、可視性を考慮したレンダリング済みブラウザの結果や、実際のTUIレンダラーによる最終的なターミナルセル出力などです。文字列アサーション、レンダリング前の合成、コンポーネント単体のスナップショット、ヘルパーレベルのレンダラーテストは、有用な回帰テストの証拠として引き続き価値がありますが、その境界の代わりにはなりません。スクリーンショットが示すのは表示状態のみです。インタラクションや遷移に関する主張には、ユーザーの操作と観測された結果も必要です。

再読み込み後の証拠の再利用

既存の実際のインターフェースのスクリーンショットによる証跡は、ブランチがマージまたはリベースされた場合や、そのメタデータまたは PR 本文が変更された場合だけを理由に撮り直す必要はありません。キャプチャされた状態との間の差分を確認してください。その差分がレンダリングされたインターフェースの動作と表示に影響する入力を保持している場合は、証跡を再利用してください。ただし、キャプチャされたリビジョンを識別可能な状態に保ってください。レンダリング、レイアウト、折り返し、クリッピング、ヒット領域、ロケールのテキスト、フォーカス、インタラクション、レスポンシブな動作、またはその他の表示に影響する入力が変更された場合は、影響を受けた証跡を撮り直してください。レビュアーから具体的な表示上の懸念が示された場合は、その懸念に対する証跡が引き続き必要です。

証明マトリクス

Surfaceユーザーパスと境界最小の信頼できる証明次の場合は、手動または環境固有の証明を追加してください
CLI(CLI クイックスタートを含む)ユーザーは同梱されたコマンドを実行し、フラグまたは CLI プロンプトに従って、プロセスと端末の境界で出力、終了ステータス、または保存された状態を確認します。TUI クイックスタートは zerocode の行に従います。Web クイックスタートは gateway および dashboard の行に従います。バイナリを起動する自動テストまたはスクリプトは、分離されたホームまたは設定ディレクトリで実際のコマンドを起動し、ユーザーに表示される結果を検証します。Testing がスイートレベルを決定します。この主張は、対話型プロンプト、ターミナルの描画、シェルまたは PATH の動作、プラットフォームの権限、あるいは既存のユーザー状態からのアップグレード動作に依存します。
zerocode とデーモントランスポートzerocode は、サポートされているローカル Unix ソケットまたは Windows パイプ経由、あるいはリモート WSS 経由で接続し、実際のリクエストを送信して、返された状態をレンダリングまたは永続化します。インテグレーションテストまたはシステムテストでは、外部サービスのみをモック化し、実際のクライアント、サーバー、および表明されたトランスポートを使用します。その主張は、キーボード入力、端末レイアウト、ソケットパスまたは権限、TLS または認証、再接続の動作、デーモンプロセスのライフサイクルに依存します。
ゲートウェイ、API、およびダッシュボードクライアントが HTTP、WebSocket、または SSE の境界を越え、ブラウザーまたは API コンシューマーがレスポンス、ストリーム、認証結果、または状態変更を確認する。サーバーレベルのテストは、実際のルートとミドルウェアスタックに到達します。ブラウザに関する主張には、そのルート契約に対するUIテストも含まれます。この主張は、ブラウザのレイアウトまたは操作、Cookie またはブラウザ認証の動作、再接続のタイミング、ストリーミングの表示、またはデプロイ済みネットワークの制約に依存しています。
チャンネル実際のチャネル形式のインバウンドイベントが、アダプター解析とランタイムディスパッチを経由して、意図したアウトバウンドの返信、スレッド、メディア、リアクション、またはステータスを生成する。アダプターのテストではベンダーのペイロードを対象とし、システムテストではベンダーネットワークをモック化して、インバウンドからアウトバウンドまでの経路を対象とします。不確実性の原因は、ベンダー側のスレッド処理、メンションルール、メディアの制限、webhook の検証、配信動作、またはフィクスチャでは利用できない別の契約です。専用のテストアカウントを使用してください。
プロバイダーとモデルのルーティングユーザー設定とリクエストによって目的のプロバイダーとモデルを選択し、期待されるストリーム、レスポンス、フォールバック、またはエラーを公開します。統合テストまたはシステムテストでは、プロトコルに正確に準拠したレスポンスを返すモックプロバイダーエンドポイントに対して、実際の設定とルーティングパスを使用します。不確実性は、プロバイダー認証、通信動作、ストリーミングの癖、レート制限、モデルの可用性、またはモックでは表現されないその他の外部コントラクトにあります。
ツールの承認と実行オペレーターは、変更されたCLI、チャンネル、ACP、またはWebフロントドアを通じて承認リクエストを受け取ります。その決定は共通ポリシーに到達し、承認された呼び出しは本番ディスパッチャーまたはラッパーを通じて実行され、期待される結果、レシート、オブザーバーイベント、拒否、または副作用を公開します。変更された承認の入口を共通承認マネージャー経由でテストし、その後、無害なテストツールと制御されたファイルシステムまたはプロセスのフィクスチャを使って、本番のディスパッチパスを実行します。この主張は、ターミナル、チャネル、ブラウザーの表示、オペレーティングシステムの権限、実際の外部プログラム、キャンセルシグナル、ハードウェア、ネットワークアクセス、または不可逆な副作用に依存します。
バックグラウンド作業cron ジョブ、SOP 実行、委任タスク、またはランタイムで生成されたサブエージェントは、実際のライフサイクル所有者を通じて開始され、その経路がサポートするステータス、永続化、キャンセル、リトライ、または再起動の動作のみを公開します。変更されたパスは、決定論的なクロックまたは制御されたワーカーを使用して、文書化された所有者およびステータスサーフェスを通じて実行してください。主張に永続化が含まれる場合にのみ、構成済みのストアを使用してください。この主張は、ウォールクロックスケジューリング、実際のサービス再起動、プロセス監視、または外部スケジューラやワーカー環境に依存しています。
インストーラー、パッケージ、リリースアーティファクトユーザーが変更後のインストーラーモードを実行するか、生成されたパッケージまたはアーカイブをクリーンな環境にインストールし、インストールされたバイナリを起動して、期待されるバージョンまたは機能を確認します。変更されたエントリーポイントを実行する: インストーラースクリプトを影響を受けるモードで実行するか、ビルドされた成果物を展開またはインストールし、クリーンなターゲット環境で最小限のインストール後コマンドを実行します。対象が必須の CI に含まれていないか、主張がパッケージマネージャーの権限、シェル統合、署名、公証、サービス設定、またはプラットフォーム固有のアップグレード動作に依存している場合。

証拠を報告する

検証の証跡には、テスト対象のリビジョン、ユーザー操作、環境、期待結果、実際の結果を記載してください。提示に影響する視覚的変更では、適切なターミナルまたはビューポートのサイズで取得したスクリーンショットを、結果を判断できるだけの周辺情報とともに含めるか、リンクしてください。数値的な寸法は、具体的な提示上の懸念を再現または評価するために必要な場合にのみ記録してください。対象となるセマンティックのみの描画UI変更では、正確なHEADコミット、実行した最終的なサポート対象インターフェースの出力、変更された状態、観測された表示内容を明記してください。対象となる決定的なプレーンテキストの変更では、代わりに、正確なサポート対象インターフェースの出力、テスト対象のリビジョン、および出力整形に関連するコンテキストを含めてください。別のレビュアーが再現できるよう役立つ場合は、自動チェックへのリンクを載せるか、正確で安全なコマンドを記載してください。スクリーンショットが示すのは表示されている状態であり、非表示の動作は示しません。ログが示すのは、記録された経路と結果のみです。

変更がユーザー境界に影響し得ず、ユーザー可視の主張も行わない場合は、追加のユーザー境界証明は該当しないと明記してください。ユーザー向けパスにおける振る舞いを維持するリファクタリングでは、既存の境界回帰カバレッジに依拠するべきです。そのカバレッジに明示されたギャップがない限り、新しい手動または環境固有のエビデンスは不要です。

ライブデモには合成データと専用テストアカウントを使用してください。認証情報、トークン、個人データ、プライベートエンドポイントは削除してください。明示的な承認なしに、本番アカウント、取り消し不可能な副作用、または有料の外部操作を実行しないでください。