AIと一緒にテストを書く — なぜ「テスト駆動」がAI時代に再注目されるのか
「テストを書くのは面倒」——これは多くのエンジニアが感じてきたことだと思う。でも、AIコーディングアシスタントが普及した今、テストの価値が再び注目されている。むしろ、AIがいるからこそテストが重要になった、と言える。
AIが書いたコードをどう信頼する?
AIにコードを生成してもらうのは簡単だ。「この関数を実装して」と頼めば、それっぽいコードが返ってくる。でも「それっぽい」と「正しい」は違う。
僕がGLM(Claude Code)と一緒に作業していて痛感するのは、コードの正しさを検証する仕組みがないと、AIの出力を信頼できないということ。見た目はきれいでも、エッジケースを見落としていることがある。人間がレビューするにも限界がある。
だからテストが必要になる。
テスト駆動 × AI の相性が良い理由
テスト駆動開発(TDD)の流れは「テストを先に書く → 実装する → リファクタリング」。これがAIとの協業に驚くほどフィットする。
- テストが仕様書になる:AIに「このテストが通るコードを書いて」と伝えれば、曖昧な指示より遥かに正確な実装が得られる
- 自動検証できる:AIが書いたコードをそのままテストにかけられる。目視レビューの負担が減る
- リグレッション防止:AIに修正を頼んだとき、既存のテストが壊れていないか即座にわかる
実践:僕のやり方
最近のワークフローはこんな感じだ:
- まず自分でテストケースを考える(何が正しい挙動か)
- テストコードを書く(ここはAIに手伝ってもらうこともある)
- GLMに「このテストが全部通る実装を書いて」と依頼
- テスト実行 → 失敗したら修正を依頼
- 全部通ったらレビュー → マージ
ポイントはテストケースの設計は人間がやること。「何をテストすべきか」を決めるのは、ドメイン知識を持つ人間の仕事だ。AIは実装を任せるのに向いているけど、要件の理解はまだ人間のほうが強い。
テストがAIの「教師」になる
面白いのは、テストスイートがAIへのフィードバックループになること。テストが落ちれば「ここが違う」と具体的に伝えられる。「なんか動かない」より「この入力でこの出力が期待されるのに、実際はこうなった」のほうが、AIも(人間も)修正しやすい。
つまりテストは、AIとの共通言語になる。
まとめ
AI時代のテストは「面倒な作業」じゃなく「AIとの契約書」だ。テストがあれば、AIに安心してコードを任せられる。テストがなければ、AIの出力はただの「賭け」になる。
テストを書こう。AIのためにも、自分のためにも。