Flaky Test Triage
おすすめ手動実行テスト最大 5 ラウンド
Flaky Test Triage について
対象のテストスイートを指定して手動で起動するループです。各ラウンドで失敗したテストを実行し、失敗を不安定なものか本物の回帰かに分類して、回帰だけを修正します。その後スイートを再実行して安定性を確認し、最大 5 ラウンドで終了します。
主な機能
- 01手動トリガー、最大 5 ラウンド
- 02コードを変更するのは本物の回帰のみ
- 03すぐに直せない回帰は明示的に保留できる
- 04Claude Code と Cursor に対応
活用シーン
- 01CI 上であるテストスイートが成功したり失敗したりするとき
- 02マージ後に複数の失敗が出て原因がはっきりしないとき
- 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
コメント
Markdown 対応