← Reports へ戻る

Claude Codeでテストを増やしながら開発する流れ

Claude Codeと組み合わせて、テスト駆動開発を実務的に進める方法を説明します。

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 と組み合わせたテスト駆動開発:

基本的な流れ

  1. テストを計画
  2. Claude Code でテスト生成
  3. テスト失敗を確認
  4. Claude Code で実装
  5. テスト成功を確認

効果

テスト数の目安

Claude Codeで既存コードを壊さないための確認手順と合わせることで、品質の高い開発が実現します。

Claude Codeテスト駆動開発TDD品質保証