mcpField

Flaky Test Triage

おすすめ手動実行
テスト最大 5 ラウンド

Flaky Test Triage について

対象のテストスイートを指定して手動で起動するループです。各ラウンドで失敗したテストを実行し、失敗を不安定なものか本物の回帰かに分類して、回帰だけを修正します。その後スイートを再実行して安定性を確認し、最大 5 ラウンドで終了します。

主な機能

  1. 01手動トリガー、最大 5 ラウンド
  2. 02コードを変更するのは本物の回帰のみ
  3. 03すぐに直せない回帰は明示的に保留できる
  4. 04Claude Code と Cursor に対応

活用シーン

  1. 01CI 上であるテストスイートが成功したり失敗したりするとき
  2. 02マージ後に複数の失敗が出て原因がはっきりしないとき
  3. 03リリース前にテストの失敗を整理するとき
目標
失敗しているテストがすべて不安定か本物の回帰かに分類され、本物の回帰は修正済みか明示的に保留されている。
終了条件
すべての失敗が分類され、本物の回帰が修正済みか明示的に保留された時点、または 5 ラウンドに達した時点で終了します。
各ラウンドの間に実行
npm test -- --testPathPattern=<failing-suite>

起動プロンプト

Claude Code / Cursor に貼り付けて実行すると、終了条件を満たすまでエージェントが以下の手順を繰り返します。

prompt.md
「Flaky Test Triage」ループを開始します。
目標:失敗しているテストがすべて不安定か本物の回帰かに分類され、本物の回帰は修正済みか明示的に保留されている。
最大ラウンド数:5。
ステップ 1:失敗したテストを実行 — --testPathPattern で失敗しているスイートを指定して実行し、どのテストがどんなエラーで失敗したかを記録します。 `npm test -- --testPathPattern=<failing-suite>`
ステップ 2:失敗を分類 — 各失敗について、同じコードで成功したり失敗したりするかを判断します。結果が一定でないものは不安定、確実に再現するものは本物の回帰とします。
ステップ 3:本物の回帰を修正 — 本物の回帰の原因となっているコードだけを修正します。今は対応できないものは、理由を記録して保留にします。
ステップ 4:安定性を確認 — 同じスイートをもう一度実行し、修正後の結果が一定かを確認します。未分類の失敗が残っていれば次のラウンドに進みます。 `npm test -- --testPathPattern=<failing-suite>`
各ラウンドの間に実行:`npm test -- --testPathPattern=<failing-suite>`
終了条件:すべての失敗が分類され、本物の回帰が修正済みか明示的に保留された時点、または 5 ラウンドに達した時点で終了します。

手順

各ラウンドは順番に実行され、終了条件を満たさなければ次のラウンドへ進みます(最大 5 ラウンド)。

01
失敗したテストを実行

--testPathPattern で失敗しているスイートを指定して実行し、どのテストがどんなエラーで失敗したかを記録します。

$npm test -- --testPathPattern=<failing-suite>
02
失敗を分類

各失敗について、同じコードで成功したり失敗したりするかを判断します。結果が一定でないものは不安定、確実に再現するものは本物の回帰とします。

03
本物の回帰を修正

本物の回帰の原因となっているコードだけを修正します。今は対応できないものは、理由を記録して保留にします。

04
安定性を確認

同じスイートをもう一度実行し、修正後の結果が一定かを確認します。未分類の失敗が残っていれば次のラウンドに進みます。

$npm test -- --testPathPattern=<failing-suite>
未達 → 次のラウンド条件を満たせば終了

対応エージェント

この Loop をそのまま実行できるコーディングエージェントです。

Claude Code
Cursor

コメント