カバレッジ分析レポート
問題: カバレッジが60%から向上しない理由
1. 追加したテストの対象範囲が限定的
追加したテストファイル(test_file_creator.py、test_history_manager.pyなど)を単独で実行した場合のカバレッジ:
TOTAL: 5515行中4573行未カバー = 15%カバレッジ
これは、これらのモジュールが全体のコードベースに対して占める割合が小さいことを意味します。
2. 各ファイルのサイズ比較
| ファイル | 行数 | カバレッジ | 未カバー行数 |
|---|---|---|---|
file_creator.py | 9行 | 高 | - |
history_manager.py | 小 | 高 | - |
chat_handler.py | 小 | 高 | - |
code_generator.py | 小 | 高 | - |
llm_router.py | 578行 | 55% | ~260行 |
orchestrator.py | 505行 | 57% | ~217行 |
constitutional_council_agent.py | 547行 | 23% | ~420行 |
voice_to_text.py | 504行 | 64% | ~181行 |
3. 全体カバレッジの計算方法
全体カバレッジ = (カバーされた行数) / (全コード行数)
- 全体のコードベース: 約12,646行 (src/配下)
- 追加したテストでカバーした行数: 数百行
- 影響度: 数%程度
4. カバレッジが60%で停滞する理由
- 既に大きなモジュールがカバーされている
- 全体で約7,600行がカバー済み(60%)
- 残り約5,000行が未カバー
- 追加したテストの影響が小さい
- 対象ファイルは小規模(各ファイル数十行〜数百行)
- 全体に対して数%の影響しかない
- 大きな未カバーファイルが存在
constitutional_council_agent.py: 420行未カバーorchestrator.py: 217行未カバーllm_router.py: 260行未カバー- これら1つで、小さいファイル10個分以上の影響
カバレッジを向上させるには
戦略1: 大きな未カバーファイルにテストを追加
優先順位:
constitutional_council_agent.py(420行未カバー)orchestrator.py(217行未カバー)llm_router.py(260行未カバー)unified_analyzer.py(約150行未カバー)
戦略2: 中規模ファイルのカバレッジを向上
context_agent.py: 163行未カバーvoice_to_text.py: 181行未カバーtree_sitter_checker.py: 91行未カバー
戦略3: UI関連ファイルは除外を検討
Gradioアプリ関連は通常テストが困難:
app_ui.py,dashboard.py,interactive_generator.pyなど- これらは統合テストまたは手動テストでカバー
結論
- 追加したテストは品質向上には有効(253件のテスト)
- しかしカバレッジ数値の向上には限定的
- カバレッジを向上させるには、大きな未カバーファイルへのテスト追加が必要
- 小さいファイルへのテスト追加では、全体カバレッジへの影響は小さい