Claude Codeでテストを増やしながら開発する流れ
はじめに
テスト駆動開発(TDD)は品質向上に効果的ですが、手間がかかります。Claude Code を活用すれば、テストと実装を効率的に進められます。本記事では、その流れを説明します。
従来の開発 vs Claude Code を活用した TDD
従来のテスト作成
手作業で:
1. テストケースを想定
2. テスト関数を手書き
3. 実装
4. テスト実行
問題:テスト作成が手間
Claude Code を活用した TDD
1. テストの意図を Claude Code に説明
2. Claude Code がテストケースを生成
3. テストを確認
4. Claude Code が実装を生成
5. テスト実行 ✅
効果:テスト作成が高速化
TDD の流れ:5 ステップ
Step 1:テストを計画
実装したい機能を、テストで表現する
例:ユーザー認証
テストケース案:
- test_valid_credentials_returns_true
- test_invalid_credentials_returns_false
- test_empty_password_returns_false
- test_special_characters_in_password
- test_sql_injection_attempt_blocked
Step 2:Claude Code でテストを生成
Claude Code 指示:
「tests/test_auth.py に以下のテストを追加
テスト関数:
- test_valid_credentials(有効な認証情報)
- test_invalid_credentials(無効な認証情報)
- test_empty_password(空のパスワード)
- test_sql_injection(SQL インジェクション試行)
要件:
- pytest を使用
- 各テストは独立
- テストは失敗する(実装がまだ)
- 20 行以下のテスト × 4」
Step 3:テストが失敗することを確認
pytest で実行
↓
4 個のテストが FAILED ✅(期待通り)
↓
実装が必要
Step 4:Claude Code で実装を生成
Claude Code 指示:
「src/auth.py に authenticate() 関数を実装
要件:
- username(文字列)と password(文字列)を入力
- 認証成功なら True、失敗なら False を返す
- bcrypt を使用
- SQL インジェクション対策済み
- テスト 4 個が全部パスする
制約:
- 20 行以下
- エラーハンドリングは簡潔に」
Step 5:テストが全部通ることを確認
pytest で実行
↓
4 個のテストが PASSED ✅
↓
実装完了
1 日の開発フロー例
【09:00-09:30】計画
今日の機能を分解
テストケースを列挙
【09:30-10:00】テスト生成
Feature 1 のテストケース 5 個を生成
Claude Code で tests/test_feature1.py に追加
【10:00-10:15】テスト確認
pytest で実行 → 5 個失敗 ✅
【10:15-10:45】実装
Claude Code で Feature 1 を実装
テストが全部パス ✅
【10:45-11:00】Feature 2 テスト
テストケース 4 個を生成
【11:00-11:20】Feature 2 実装
実装 → 4 個テストパス ✅
【11:20-12:00】Feature 3
テスト 3 個 → 実装 ✅
【12:00-13:00】昼休憩
【13:00-13:30】統合テスト
複数 Feature を組み合わせたテスト
【13:30-14:00】エッジケーステスト
予期しない入力のテストを追加
【14:00-14:30】すべてのテスト実行
全テストパス ✅
【14:30-15:00】ドキュメント & コミット
テスト駆動のメリット
1. バグが少ない
テストの枠に従って実装 → 漏れが少ない
2. リファクタリングが安心
テストがあるから、安全に修正可能
3. ドキュメント代わり
テストの仕様から実装の意図が分かる
4. 修正時間が短い
テストが失敗したら、どこが壊れたか明確
よくある失敗
❌ 失敗1:テストなしで実装
「実装してからテストを作ろう」
↓
実装が先行
↓
テスト作成が面倒になる
↓
テストが不十分
✅ 改善:テストを先に
「テストを先に作成」
↓
実装が明確
↓
テストが充実
❌ 失敗2:テストが多すぎて管理できない
「20 個以上のテストを作成」
↓
管理が大変
↓
テスト実行時間が長い
✅ 改善:テスト数は適正に
「必要十分なテスト数」
↓
5-10 個程度が適度
↓
管理と実行が効率的
テスト駆動のチェックリスト
□ 今日の機能を分解した
□ テストケース数を決めた
□ Claude Code でテストを生成
□ テストが失敗することを確認
□ Claude Code で実装を生成
□ テストが全部パスすることを確認
□ エッジケースをテストに追加
□ すべてのテストが GREEN ✅
□ コミット
まとめ
Claude Code と組み合わせたテスト駆動開発:
基本的な流れ:
- テストを計画
- Claude Code でテスト生成
- テスト失敗を確認
- Claude Code で実装
- テスト成功を確認
効果:
- バグが少ない
- リファクタリングが安全
- 開発が高速化
テスト数の目安:
- 小さな機能:3-5 個
- 中程度の機能:5-10 個
- 大きな機能:10-15 個
Claude Codeで既存コードを壊さないための確認手順と合わせることで、品質の高い開発が実現します。