テスト駆動開発(TDD)
AIと一緒にテストファーストで開発する
TDD × バイブコーディング
テスト駆動開発(TDD)とバイブコーディングは相性抜群です。 テストを先に書くことで、AIへの「要件」が明確になり、より正確なコードが生成されます。
ポイント: テストコード = AIへの仕様書
バイブコーディングでのTDDサイクル
1. Red
失敗するテストを書く
2. Green
AIに実装させる
3. Refactor
AIにリファクタさせる
実践例: 計算機能の実装
Step 1: テストを書く(Red)
"以下のテストケースを作成して(Vitest使用):
calculate関数のテスト:
- add(2, 3) → 5
- subtract(10, 4) → 6
- multiply(3, 4) → 12
- divide(10, 2) → 5
- divide(10, 0) → Error
テストファイルだけ作成して、実装はまだしないで。"
→ この時点でテストは失敗する(実装がないから)
Step 2: 実装する(Green)
"このテストが通る最小限の実装を作成して。"
→ AIがテストを満たす実装を生成
Step 3: リファクタリング(Refactor)
"テストが通ったまま、このコードをリファクタリングして。
- 重複を削除
- 型を追加
- エラーメッセージを改善"
→ テストが通ることを確認しながら改善
テスト生成プロンプト集
ユニットテスト
"この関数のユニットテストをVitestで作成して。
正常系、異常系、エッジケースを網羅して。"
統合テスト
"このAPIエンドポイントの統合テストを作成して。
supertestを使用。認証が必要なルートのテストも含めて。"
E2Eテスト
"Playwrightでこのログインフローのe2eテストを作成して。
- 正常ログイン
- 不正なパスワード
- 空の入力"
TDD × バイブコーディングのコツ
✓ テストを仕様書として使う
"このテストが通るように実装して"と言えば、仕様のブレがなくなる
✓ 小さく始める
1つのテストケースから始めて、徐々にケースを追加
✓ テスト実行を習慣化
"テストを実行して結果を教えて"を毎回依頼する