# test-quality-audit > テストスイートの品質監査。Usefulness Score評価と削除候補特定。 - Author: Takumi - Repository: TakumiOkayasu/dotfile-work - Version: 20260122181545 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/TakumiOkayasu/dotfile-work - Web: https://mule.run/skillshub/@@TakumiOkayasu/dotfile-work~test-quality-audit:20260122181545 --- --- 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) ``` ### 判定基準 | スコア | 判定 | アクション | |--------|------|------------| | ≥20 | CRITICAL | 必須維持、最優先修正 | | 15-19 | KEEP | 維持 | | 10-14 | REVIEW | 再検討、統合検討 | | <10 | REMOVE | 削除候補 | --- ## 監査チェックリスト ### 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 |