mcpField
T
test-failure-investigator

test-failure-investigator

github.com/proffesor-for-testingテスト・品質51965 回インストール今日更新
リポジトリ

test-failure-investigator について

開発者やテストエージェント向けに、失敗したテストを手順に沿って調査するスキルです。再現と分類を行い、原因を絞り込んで報告にまとめます。

主な機能

  1. 01回帰・不安定・環境・一時的な失敗の分類
  2. 02複数回のテスト実行による再現
  3. 03変更内容と原因候補の調査
  4. 04構造化された障害レポートの作成
  5. 05後続のテストスキルの提案

活用シーン

  1. 01新たに失敗したテストの調査
  2. 02失敗が断続的かどうかの確認
  3. 03回帰と最近のコード変更との関連の追跡

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill test-failure-investigator

インストール後、Claude Code で/test-failure-investigatorを入力して読み込まれたか確認します。

詳細

テスト失敗の調査

テスト失敗を体系的に調査する、ランブック形式のスキルです。失敗したテストを受け取り、根本原因を特定して、対応を推奨します。

有効化

/test-failure-investigator [test-name-or-file]

調査フロー

ステップ 1:失敗を分類する

テストを 3 回実行して、分類します。

結果のパターン分類対応
一貫して失敗するリグレッション または 環境ステップ 2 に進む
断続的に失敗するフレーキーステップ 4 に進む
今回は成功する一時的CI のログと環境の差分を確認する
# Run test 3 times
for i in 1 2 3; do npx jest {{test_file}} 2>&1 | tail -5; echo "--- Run $i ---"; done
ステップ 2:範囲を絞り込む
# When did it start failing?
git log --oneline -20 -- {{related_source_files}}

# What changed recently?
git diff HEAD~5 -- {{related_source_files}}

# Does it fail in isolation?
npx jest {{test_file}} --testNamePattern="{{test_name}}"

# Does it fail with other tests?
npx jest --runInBand  # sequential execution
ステップ 3:根本原因を分析する
症状考えられる原因調査
タイムアウトネットワーク/DB 依存関係外部サービスの稼働状況を確認する
アサーションの不一致ロジックの変更期待値と実際の値を比較し、git blame を確認する
インポートエラー依存関係の変更package.json の変更を確認し、npm ci を実行する
アクセス拒否環境ファイルのアクセス権と Docker ボリュームを確認する
メモリ不足リソースリーク--detectOpenHandles でプロファイルする
ステップ 4:フレークテストを調査する
# Run 10 times to confirm flakiness
for i in $(seq 1 10); do npx jest {{test_file}} --forceExit 2>&1 | grep -E 'PASS|FAIL'; done

# Common flaky causes:
# - Shared state between tests (missing cleanup)
# - Time-dependent assertions (use fake timers)
# - Race conditions (missing await)
# - Port conflicts (use random ports)
# - Order dependency (run with --randomize)
ステップ 5:報告する
## Test Failure Report
- **Test**: {{test_name}}
- **File**: {{test_file}}
- **Classification**: Regression / Flaky / Environment / Transient
- **Root Cause**: {{description}}
- **First Failed**: {{commit_hash}} ({{date}})
- **Fix**: {{recommended_action}}
- **Verified**: [ ] Fix applied and test passes 3x consecutively

組み合わせ

調査後、次のスキルと組み合わせます。

  • /bug-reporting-excellence — リグレッションが見つかった場合、バグレポートを提出します
  • /regression-testing — リグレッションの場合、リグレッションテストスイートに追加します
  • /qe-test-execution — 修正後にテストを再実行します

注意点

  • エージェントはテストを実行せずに根本原因を推測することがあります。必ず先に再現してください
  • 「自分のマシンでは動く」は診断になりません。環境(node のバージョン、OS、依存関係)を比較してください
  • 10 回中 9 回成功するフレークテストでも、CI では「成功」と報告されます。10 回以上実行してください
  • テストの分離不備は、フレークテストの最大の原因です。beforeAll/afterAll で共有状態がないか確認してください

コメント