0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【失敗談】AIにテストを書かせたら俺のカバレッジ...低すぎ!?となった話

Last updated at Posted at 2025-12-11

🤯AIで作ったコードのカバレッジ...低すぎ!?

Spec駆動開発で先にテストを書きながら進めていたのですが、ふとCIのカバレッジ率をみるとなんと57.3%
Googleのテストブログによると60%以上で許容範囲とあるのでそれに比べたら圧倒的に低いですね。

観点的には問題ないはずだし、境界値を使うロジックもないのでテストが本質的に難しい部分のテスト実行率が悪いのかなと仮説を立てて調査だけお願いしました。

🧪Claude Codeに原因分析してもらった

パッケージ別カバレッジまとめ

パッケージ カバレッジ 状態
middleware 100.0% ✅ 良好
model 100.0% ✅ 良好
router 90.9% ✅ 良好
logger 94.4% ✅ 良好
metrics 90.0% ✅ 良好
handler 85.7% ✅ 良好
config 83.3% ✅ 良好
service 77.8% 🟡 改善可能
httpserver 64.3% 🟡 改善可能
database 40.0% ⚠️ 要改善
repository 7.7% ❌ 最優先で改善必要
cmd/auth-service 0.0% ⚠️ main関数
cmd/migrate 0.0% ⚠️ main関数

みたところ、repository層のカバレッジ率が有意に低いようです。原因を分析してもらうと、Postgressに依存する部分のテストがSkipされていたようです。そこで、CIの時間がかかることを許容してテストを実行するようにコードを変更しました。Buildやスモークテストが長いので並走して長いCIが走る分には問題ないという判断です。

📘学び

  1. repository層のテストをSkipすると見た目上のカバレッジが低くなることもある
  2. repository層のユニットテストの設計はあらかじめ考える必要がある
  3. カバレッジを最初から出したために変更が最小限で抑えられた

📌課題

  • repository層の単体テストの実現
    • go-sqlmock なるライブラリがあるらしい
  • E2Eテストの時間省力化
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?