AgentSkillsCN

test-quality-audit

开展测试套件的质量审计,以 Usefulness Score 为评价标准,精准识别并筛选出待淘汰的测试用例。

SKILL.md
--- frontmatter
name: test-quality-audit
description: テストスイートの品質監査。Usefulness Score評価と削除候補特定。

Test Quality Audit

トリガー

  • テストスイートのレビュー依頼
  • テスト実行時間が長い
  • Flaky testが発生
  • 新規参画者のオンボーディング

監査プロセス

text
1. 全テスト一覧化
2. Usefulness Score算出
3. カテゴリ分類
4. 削除候補特定
5. 改善提案

Usefulness Score評価

計算式

text
Score = Impact(1-5) × Probability(1-5)

判定基準

スコア判定アクション
≥20CRITICAL必須維持、最優先修正
15-19KEEP維持
10-14REVIEW再検討、統合検討
<10REMOVE削除候補

監査チェックリスト

1. ビジネス価値監査

  • テストはビジネスロジックを検証しているか?
  • フレームワーク機能のテストではないか?
  • ユーザー価値に直結するか?

NG例:

  • it('should render component') → フレームワークテスト
  • it('should call useEffect') → 実装詳細テスト

2. 重複監査

  • 同じ振る舞いを複数テストしていないか?
  • E2Eで担保されているのにUnitでも書いていないか?
  • 統合可能なテストがないか?

3. 信頼性監査

  • Flaky testはないか?
  • 環境依存テストはないか?
  • 実行順序依存はないか?

Flaky判定: 10回実行で1回でも異なる結果 = Flaky

4. 保守性監査

  • テスト名から意図が分かるか?
  • 失敗時の原因特定が容易か?
  • テストデータは明確か?

5. パフォーマンス監査

  • 実行時間は許容範囲か?
  • 不要なsetup/teardownはないか?
  • 並列実行可能か?

削除対象パターン

即時削除

パターン理由
フレームワークテストフレームワークの責務
ゲッター/セッターテスト価値なし
コンストラクタテスト価値なし
モック検証のみ実装詳細
常に成功するテスト意味なし

検討後削除

パターン条件
重複テスト上位層で担保済み
古いテスト対応機能が削除済み
複雑すぎるテスト保守コスト > 価値

監査レポートフォーマット

markdown
# テスト品質監査レポート

## サマリー

| 指標 | 値 |
|------|-----|
| 総テスト数 | X |
| CRITICAL (≥20) | X |
| KEEP (15-19) | X |
| REVIEW (10-14) | X |
| REMOVE (<10) | X |

## 削除推奨

| テスト | スコア | 理由 |
|--------|--------|------|
| test_xxx | 6 | フレームワークテスト |

## 改善推奨

| テスト | 現スコア | 改善案 |
|--------|----------|--------|
| test_yyy | 12 | 境界値追加で15+ |

## カバレッジギャップ

| 領域 | 現状 | 必要 |
|------|------|------|
| Money | 18 | 20+ |

自動監査ルール

yaml
# .github/workflows/test-audit.yml
rules:
  - name: no-framework-tests
    pattern: "expect.*toBeInTheDocument|toBeDefined"
    action: warn

  - name: no-implementation-details
    pattern: "toHaveBeenCalledWith.*internal"
    action: warn

  - name: no-flaky-tests
    pattern: "retry|flaky|skip"
    action: error

禁止事項

  • ❌ 監査なしのテスト追加
  • ❌ スコア未記載のテスト
  • ❌ 削除候補の放置
  • ❌ Flakyテストの許容
  • ❌ フレームワークテストの維持

品質ゲート

指標閾値
REMOVE比率<5%
Flaky率0%
平均スコア≥15
カバレッジギャップ0