直接回答
コード生成前に、振る舞い契約、既存テストの規約、テスト境界を渡します。各テストが保護する失敗を説明し、非公開実装への結合を避け、実際のリポジトリコマンドで単独実行できるようにします。回帰テストは未修正版で先に失敗することも確認します。
重要な結論
- 最大カバレッジではなく、観測する振る舞いからテスト階層を選びます。
- 回帰テストは古い不具合を検出できることを先に証明します。
- fixture、mock、時刻、乱数、共有状態による不安定性を確認します。
- 行カバレッジは未実行箇所の手掛かりであり、良いアサーションの証明ではありません。
重要な事実
このガイドで解決できること
コーディングエージェントによる単体、結合、回帰テスト生成を制御された手順にする。
検証範囲と制約
- 証拠の種類
- 公式ドキュメントローカル検証
- 検証範囲
- 振る舞い選択、テスト階層、生成、失敗証明、不安定性確認、テストスイート統合を対象とします。
- 制約と失効条件
- - 不足した業務ルールは推測できないため、期待する振る舞いを保守担当者が示す必要があります。
- - 検出、fixture、分離の規則は、リポジトリで使うフレームワークのバージョンに依存します。
保護する観測可能な振る舞いを一つ選ぶ
呼び出し元が観測できる入力、状態遷移、出力、副作用から始め、正常値、境界値、不正入力、必要なエラー挙動を明記します。期待値に合意がなければ、アサーションを生成する前に契約を確定します。
編集前に近隣テストを見つけ、fixture、命名、ヘルパー、配置規則を説明させます。既存のテスト構造もリポジトリ契約です。
信頼できる最小のテスト階層を選ぶ
安定した関数境界には単体テスト、コンポーネント契約には結合テスト、下位層で確認できないユーザーフローだけに E2E テストを使います。全階層を既定で追加しても、新しい信号なしに保守コストが増える場合があります。
- 非公開フィールドより公開 API と観測結果を検証します。
- 並行する setup を新設せず、保守中の fixture を再利用します。
- テスト対象のロジックではなく外部境界を mock します。
- 本番シークレットと実サービスをテスト経路から除外します。
明確なアサーションを持つ小さなテスト群を作る
振る舞いごとに少数を生成し、名前とアサーションを確認してから増やします。各テストには明確な失敗理由が必要で、スナップショットは出力自体がレビュー済み契約の場合に限ります。
追加する fixture と mock を説明させます。隠れた共通 setup は、確認すべき経路を迂回させることがあります。
回帰テストが不具合を検出することを証明する
不具合修正では、未修正版で新しいテストを実行するか、対象修正を一時的に戻して、アサーションが古い挙動を検出することを確認します。その後、実装を復元して成功する結果も記録します。
変更前後の両方で成功するテストは有用な場合がありますが、今回の回帰を保護する証拠にはなりません。
独立性と品質のゲートを実行する
対象テストを繰り返し単独実行し、関連テストや標準スイートとも実行します。順序、時刻、乱数、一時ファイル、ネットワーク、後始末を確認し、失敗が対象の振る舞いを明確に示すかレビューします。
- 01単独実行文書化された runner で新しいテストだけを実行します。
- 02失敗証明保護対象がないときアサーションが失敗することを確認します。
- 03近隣実行可能なら関連テストの順序を変えて実行します。
- 04スイートゲート変更パッケージに必要なリポジトリ検証を実行します。
生成テストを本番コードと同じようにレビューする
テスト意図を読みやすくし、重複 setup を整理し、実装コードと同じレビューで所有者を決めます。仕様変更時は契約とテストを一緒に見直し、回帰に合わせて期待値を静かに変更させません。
公式情報と検証範囲
本ガイドは公開されている公式ドキュメントを根拠にしています。コマンドや設定はクライアントのバージョンにより変わるため、実行前に参照元も確認してください。
技術検証方法を見る