ユーザーアイコン

mizuko

4日前

0
0

Goのテストカバレッジ測定と活用方法

Go
テスト

Goにおけるテストカバレッジの測定方法と効果的な活用方法。カバレッジはテストがソースコードのどれだけの部分を実行・検証しているかを示す指標。

カバレッジの種類

ラインカバレッジ: 実行されたコード行の割合 ブランチカバレッジ: 条件分岐の網羅度 ファンクションカバレッジ: テストされた関数の割合

基本的な測定コマンド

# カバレッジ測定付きでテスト実行 go test -cover ./... # 詳細なカバレッジレポート生成 go test -coverprofile=coverage.out ./... go tool cover -html=coverage.out -o coverage.html # 特定パッケージのカバレッジ測定 go test -cover ./usecase/interactor/memo # カバレッジプロファイルの可視化 go tool cover -func=coverage.out

レイヤー別の推奨カバレッジ目標

  • ビジネスロジック層(Interactor): 90%以上
  • データアクセス層(Repository): 70%以上
  • HTTPハンドラー層: 60%以上
  • ユーティリティ関数: 80%以上

カバレッジ活用のベストプラクティス

  1. 重要度に応じた目標設定

    • クリティカルな処理(決済等): 95%以上
    • 一般的なCRUD処理: 70%以上
  2. 増分カバレッジの重視

    • 新規コードは高カバレッジを維持
    • 既存コードは段階的に改善
  3. カバレッジの可視化

    • CI/CDでの自動測定
    • HTMLレポートでの未テスト箇所の確認

注意点

  • カバレッジ100%≠バグゼロ
  • 質より量を重視しない(意味のあるテストを書く)
  • カバレッジは品質指標の一つに過ぎない
  • ビジネスロジックの重要部分の網羅を優先