Communityコーディング&開発github.com

svk1998/test-audit

テスト作成・変更時、バグ修正時の回帰テスト追加、または既存テストスイートの監査・整理に使用します。新しいテストや変更されたテストを、それが保護する動作に基づいてゲートし、重複や実装結合された証明を拒否し、テスト専用の生産コードの継ぎ目を除去し、削除数に囚われない証拠に基づいた低価値テストの整理をガイドします。

test-audit とは?

Test Auditスキルは、AIエージェント(Claude Code, Cursor, Codexなど)がソフトウェアプロジェクトのテストスイートを扱う際の品質基準とワークフローを定義します。2つの主要モード(AuthoringとAuditing)があり、Authoringモードではテスト追加前に4つの質問(保護する動作、失敗する信頼できる回帰、既存証明の不足理由、テスト専用の継ぎ目の有無)に答えることで、価値の高いテストのみを追加します。Auditingモードでは、低価値のテストを生産コードの所有者ごとに一括削除し、削除数ではなく各契約に1つの強力な所有者を持つスイートを目指します。ジャンクパターン(自己比較、実装結合アサーション、重複契約など)を拒否し、保持バー(公開API、SDK、プロトコル、セキュリティなど独立契約を守るテストは保持)に従います。監査時は候補の証拠と履歴を確認し、削除前に残る証明を記録し、不要な生産コードの継ぎ目をテストと一緒に削除します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/svk1998/test-audit-skill/tree/HEAD/skills/test-audit

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

テスト監査 (Test Audit)

このスキルには2つのモードがあります:

  • 作成 (Authoring). 以下に示す作成ゲートは、追加または変更するすべてのテストに適用されます。
  • 監査 (Auditing). 低価値の証明を、生産コードの所有者ごとに一貫したバッチで削除します。削除数を追い求めないでください。目標は、各契約が1つの強力な所有者を持つスイートであり、単にテスト数を減らすことではありません。

サブシステム全体のテスト面を一度に整理するキャンペーンについては、最初にCAMPAIGN.mdを読んでください。

作成ゲート

テストを追加する前に、次の4つの質問に答えてください:

  1. どの観察可能な動作、不変条件、または独立した契約を保護しますか?
  2. どの信頼できる回帰がそれを失敗させますか?
  3. 既存の証明がそれをカバーしていない理由は?各契約は、最も強い境界で1つの主要な所有者を持つべきです。別のレイヤーでのテストは、それを正当化する独自のトランスポートまたはライフサイクルリスクを必要とします。ほぼコピーのようなテストを追加するのではなく、既存のテーブルと共有フィクスチャを拡張し、繰り返しのセットアップを統合してください。
  4. 本番コードの呼び出し元のないエクスポート、フラグ、ラッパー、またはインジェクションフックが必要ですか?もしそうなら、代わりに実際の境界で証明を行ってください。

補足ルール:

  • 境界とコストガイドを使用して、テストがどこに属し、どの程度のコストを許容するかを決定してください。
  • 回帰テストは、修正前に意図した理由で失敗し、修正後にパスする必要があります。修正前の失敗を示せない場合は、レポートでその理由を述べてください。
  • バグが通過したすべてのレイヤーでテストを再現するのではなく、所有境界で1つの回帰テストで十分です。
  • 動作を保持するリファクタリングはテストを壊してはいけません。

ジャンクパターン

  • 自己比較、コピーされたインベントリ、ソースgrep、実装または呼び出し形状のアサーション、重複契約、テスト専用の継ぎ目、テスト対象によって生成された期待値、およびアサートされる動作を提供するモックを拒否してください。
  • フィクスチャは、所有者が生成すべきレシートや順序を偽造してはならず、コードが決して書き込まないパスを通じて永続性を主張してはなりません。
  • ネガティブコントロールは意図されたガードで失敗する必要があり、テストの名前は実際に実行する動作と一致しなければなりません。
  • 監査候補を評価する際は、完全なチェックリストを使用してください。

保持基準

  • 独立した契約を守るテストは保持してください: 公開API、SDK、プロトコル、設定、マイグレーション、ストレージ、セキュリティ、プラットフォーム、デフォルト、プロンプトバイト、生成されたクロス言語出力、パッケージング、リリース、アーキテクチャ、観察可能な順序。静的または低速であることはテストを削除可能にする理由にはなりません。
  • ソース検査は、識別子のみのリファクタリングに耐え、独立したユーザー向け契約を守る場合にのみ許容されます。
  • 失敗するベースラインテストは、削除するテストではなく、修正すべき製品バグである可能性があります。

監査と検証

  • 監査編集の前に、候補の証拠とワークフローを読んでください。完全な所有者、呼び出し元、履歴を調査し、何かを削除する前に残っている証明を記録してください。
  • 廃止された生産コードの継ぎ目は、そのテストと一緒に削除してください。削除数を最適化しないでください。
  • テスト実行中はチェックアウトを編集しないでください。プロジェクトのフォーカステストコマンドを所有者と兄弟テストに対して実行し、プロジェクトの変更ファイルチェックを実行し、その後ランディング前にレビューを受けてください。
  • 原因、保持された契約、証明とそのコスト、変更された本番コード行対テストコード行、およびフォローアップを報告してください。タスクがその権限を与えた場合のみ、コミット、プッシュ、またはランディングを行ってください。

関連スキル