Senro テスト
ユーザーがSenroに追加したページを含むリポジトリから、要求された数の有用なSenroテストケースを正確に生成します。 コーディングエージェントはWebMCPや生成されたテストを実行しません。Senroが後で登録されたページに対してスイートを実行します。
ワークフロー
-
現在のリポジトリに、WebMCPの動作がテストされるページが含まれていることを確認します。リポジトリを信頼できる情報源として扱います。
-
何かを生成する前にリポジトリを調査します。
.git、依存関係ディレクトリ、ビルド出力、カバレッジ出力、生成ファイルを除外します。 -
プロジェクト独自のソースコード、フレームワーク、依存関係、テスト、フィクスチャ、ドキュメントを使用して、ウェブサイトがどのようにWebMCPツールを公開しているかを判断します。特定のWebMCP API、フレームワーク、ファイルレイアウト、登録パターンを前提としないでください。
-
発見された各ツールの名前、説明、入力スキーマ、アノテーション、実装、利用可能な例の内部インベントリを作成します。
-
リポジトリからWebMCPツールを確立できない場合は、明確に報告して停止します。複数の無関係なサイトやアプリケーションが存在する場合は、それらを特定し、どれを使用するかを尋ねます。
-
関連するルート、コンポーネント、データファイル、フィクスチャ、バリデーションコード、ドキュメント、既存のテストを読み、実際のユーザージャーニーと可視の成功状態・失敗状態をマッピングします。
-
テストケースを書く前に
references/import-format-v1.mdを読みます。そこに文書化されたフィールドと構造のみを使用します。 -
要求された数の異なるテストケースを正確に生成します。リポジトリの最も重要なジャーニーをカバーします。成功するワークフロー、境界条件、無効な入力、空の結果、リカバリ、結果を伴うアクション、ソースがサポートする可視状態のアサーションを含みます。
-
リポジトリが要求された数の意味のあるソースベースのケースをサポートできない場合は、その制限を報告して停止します。架空のシナリオ、値、動作でスイートを水増ししないでください。
-
発見されたソースでサポートされているツール名と引数のみを使用します。ID、アカウント、製品、列挙値、バックエンド状態を決して作り出さないでください。安全に正確なランタイム値を確立できない場合は、ゴールのみのテストを使用します。
-
期待されるツール呼び出しは、ソースが期待されるパスをサポートしている場合にのみ使用します。複数の有効なパスが可能なワークフローに正確な軌跡を強制しないでください。
-
必要に応じて
./senroを作成します。スイートを./senro/test-cases.jsonに書き込みます。そのファイルがディスクに存在する場合は、./senro/test-cases-2.jsonのように次の利用可能な数値サフィックスを使用します。Gitで追跡されていたファイルが削除されていても、衝突とは見なされません。スイートは./senroに直接保持します。既存のファイルをアーカイブしたり移動したりしないでください。 -
成功を報告する前に、生成した正確なファイルに対してバンドルされた構造的事前検証バリデータを実行します:
node <skill-root>/scripts/validate-tests.mjs <output-path> -
正確な出力パス、テスト数、ジャーニーカバレッジ、およびすべての前提条件を報告します。テストがランタイムで検証されたと主張しないでください。Senroがライブページに対してスイートを実行する必要があります。
出力ルール
tests配列を持つ1つのJSONオブジェクトを書きます。- テスト名は簡潔にし、70文字未満に保ちます。
- 自然なユーザーリクエストを書きます。テスト対象の動作に不可欠な場合にのみ、技術的な詳細を含めます。
- ソースがサポートする場合、会話モード、評価タイプ、ジャーニーの複雑さを変えます。明示的なリクエストにはスクリプト化された会話を使用し、明確化や複数ターンの判断にはシミュレートされた会話を使用します。有用なカバレッジを追加しないバリエーションを強制しないでください。
- スクリプト化されたテストには、正確に1つの初期ユーザーメッセージを与えます。
- シミュレートされたテストには、空の作成済みメッセージリストと作成済みフォローアップなしを与えます。
- すべてのテストにゴール、必要な期待される呼び出し、またはページチェックがあることを確認します。
- 成功した結果でエージェントが達成すべきことを説明します。必要な呼び出しと引数にはツール呼び出しの期待値を使用し、最終的なページ状態にはページチェックを使用します。複数の有効なパスが存在する場合、結果に実装パスを指定しないでください。
- セットアップ呼び出しは具体的にします。セットアップ引数にマッチャー演算子を決して配置しないでください。
- ソースからの安定したセレクターをページチェックに使用します。
- 一時的なメッセージではなく、安定した最終ページ状態をアサートします。後の有効なアクションによってクリアされる可能性があります。サポートされているツール呼び出しと結果チェック、または成功した結果を通じて中間動作を検証します。
- ツール呼び出し評価が無効になっている場合は
expectedCall: nullを使用します。ツール呼び出しを禁止するものではありません。 - スイートを生成している間、ウェブサイトのソースを変更しないでください。
- シークレット、認証情報、または顧客のプライベートデータをスイートに書き込まないでください。