N4darae/shrt

A contract-driven gRPC regression harness for AI coding agents, with human-approved baselines. Snapshot the valid call chains of an API so an agent can look one up instead of tracing for it. gRPC today, OpenAPI next

解決する課題

shrt は、RPCチェーンを使用するサービスのための回帰テストスイートを作成・維持するためのツールです。手動でテストチェーンを作成する際に発生しがちな、重要なエッジケース(境界条件やトークンの欠落など)の見落としという問題を解決します。「コントラクト」を使用してテストチェーンを自動的に構成し、サービスの動作が時間の経過とともに一貫していることを検証します。

仕組み

このツールは、利用可能なRPCの記述子を構築し、コントラクトオーバーレイを使用して期待される動作を定義します。以下のワークフローに従います。

  1. 導出 (Derivation):利用可能なRPCを特定し、コントラクトを使用して呼び出しの順序付きチェーンを計画・構成します。
  2. 実行 (Execution):これらのチェーンを実行し、結果を記録します。
  3. 検証 (Verification):現在の実行結果を「セーフスポット」(以前に承認された成功した実行)と比較し、ドリフトや回帰を検出します。
  4. ゲート (Gating):CIゲート (shrt gate) がすべてのチェーンを実行し、回帰、断続的な障害、および明示的にアサートされていないレスポンスフィールドの変更をチェックします。

対象ユーザー

RPCベースのサービスの安定性を確保する必要がある開発者やQAエンジニア、特に Protocol Buffers (protos) を使用しており、厳格でコントラクト駆動型の回帰テストアプローチを求める方に最適です。

ハイライト

  • コントラクト駆動型プランニング:手動スクリプトではなく、定義されたコントラクトに基づいてテストチェーンを自動構成します。
  • セーフスポット検証:人間が承認した「セーフスポット」をベースラインとして使用し、レスポンスデータの変更(ドリフト)を検出します。
  • 自動回帰ゲート:CI対応のゲートにより、回帰、断続的な障害、および疑わしいRPCを特定します。
  • チェーンスライシング:特定の障害を再現するために最小限のサブチェーンを作成する機能。
  • 厳格なLinting:サービスが「クラッシュしなかった」ことだけを確認するようなテストを防ぐため、高品質なアサーションを強制します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト