ユーザー境界の証明
ユーザーが観察できる結果を確認するため、その主張に影響する最外側のプロダクション境界に到達することで、ユーザー可視の動作に関する主張を証明します。ユニット、コンポーネント、およびコンパイルのチェックは引き続き有用ですが、それらだけではコマンド、ターミナル、ブラウザ、チャネル、デーモン、パッケージ、または外部サービスのパスを証明することはできません。
変更された境界に到達する、信頼できる最小の証明を使用してください。その境界を確実に検証できる場合は、対象を絞った自動テストが望ましいです。残りの不確実性が実際のターミナル、ブラウザ、オペレーティングシステム、パッケージマネージャー、ベンダーサービス、認証情報の交換、再接続、または副作用に依存する場合にのみ、手動または環境固有の証拠を追加してください。ライブテストは、Testing で定義されているフルスタックの実際の外部サービスレベルのために予約してください。
境界を選択
- PR が主張するユーザー操作と、観測可能な結果を記述してください。
- クレームが影響を及ぼす最も外側の本番境界を挙げてください: process、terminal、local または remote transport、HTTP または browser、channel API、provider API、承認フロントドア、execution wrapper、ライフサイクルオーナー、installer、または package。
- 現在の HEAD でその境界に到達する既存の自動検証を特定する。
- 主張の未検証部分に必要な証拠のみを追加してください。
名前付き境界に達したとき、新たな必須 CI カウントが求められます。現在必要なカバレッジと追加のエビデンスを正当化するギャップについては、CI & Actions に従ってください。
表示形式の変更
レンダリングされたテキスト、レイアウト、間隔、配置、折り返し、クリッピング、色、フォーカス、選択、レスポンシブ動作、その他の可視状態への変更には、実際にサポート対象のインターフェースからの証拠が必要です。zerocode、Web ダッシュボード、デスクトップアプリ、対話型 CLI または TUI、インストーラー、その他の影響を受ける対象のうち、該当するものの識別可能なリビジョンで変更後の状態を確認してください。ターミナルまたはビューポートのサイズを記録し、結果を判断できるよう周囲のレイアウトも十分に含めた、プライバシーに配慮したスクリーンショットを 1 枚以上添付してください。
自動化によって生成されたスクリーンショットは、主張する境界で本番インターフェースをレンダリングしている場合は受け入れ可能です。文字列アサーション、コンポーネントのみのスナップショット、ヘルパーレベルのレンダラーテストは、引き続き有用な回帰の証拠ですが、実際のインターフェースの証明に取って代わるものではありません。スクリーンショットが証明するのは表示状態だけです。インタラクションと遷移に関する主張には、ユーザーの操作と観測された結果も必要です。
証明マトリクス
| 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 に含まれていないか、主張がパッケージマネージャーの権限、シェル統合、署名、公証、サービス設定、またはプラットフォーム固有のアップグレード動作に依存している場合。 |
証拠を報告する
検証エビデンスには、テストしたリビジョン、ユーザー操作、環境、期待結果、および観測結果を記載してください。視覚的な表示を変更する場合は、必要なスクリーンショットを含めるかリンクし、ターミナルまたはビューポートのサイズを記録してください。他のレビュアーによる再現に役立つ場合は、自動チェックへのリンクを記載するか、安全なコマンドを正確に含めてください。スクリーンショットで証明できるのは表示された状態であり、非表示の動作ではありません。ログで証明できるのは、そこに記録された経路と結果だけです。
変更がユーザー境界に影響し得ず、ユーザー可視の主張も行わない場合は、追加のユーザー境界証明は該当しないと明記してください。ユーザー向けパスにおける振る舞いを維持するリファクタリングでは、既存の境界回帰カバレッジに依拠するべきです。そのカバレッジに明示されたギャップがない限り、新しい手動または環境固有のエビデンスは不要です。
ライブデモには合成データと専用テストアカウントを使用してください。認証情報、トークン、個人データ、プライベートエンドポイントは削除してください。明示的な承認なしに、本番アカウント、取り消し不可能な副作用、または有料の外部操作を実行しないでください。