概要
- 現在のAIエージェントはテスト作成が苦手
- 多くの人間によるテスト例も低品質
- Kent BeckのCanon TDDが有効な指針
- 独自のSpecify-Encode-Fulfillループを提案
- テスト設計・ソフトウェア設計レビューで品質向上
AIエージェントとテスト作成の現状
- 2026年5月時点 では、AIエージェントによるテスト作成の品質が低水準
- 曖昧・難解・過剰・ハック的・非効率・自己満足的・無意味なテストが多発
- 人間のテスト例自体が悪い影響、教師の指導も不十分
- 教育・実務現場ともにテスト文化の課題
TDD指針としてのKent Beck's Canon TDD
- Kent Beck's Canon TDD の単純な指示だけでAIのテスト作成能力が大幅向上
- Canon TDDの流れ
- 現在のTDDセッションの範囲内で仕様リスト作成
- 各仕様を自動テストとして実装
- テスト失敗を解消するために必要最小限のコード変更
- 推測的コーディングの回避
- 振る舞い変更のコミット後のみリファクタリング
- 振る舞い変更とリファクタリングの混在禁止
- 仕様リストが空になるまで繰り返し
Specify-Encode-Fulfill(SEF)ループ
- Specify :作りたいものの仕様策定
- Encode :仕様を自動テスト(実行可能な仕様)として記述
- Fulfill :仕様を満たすコード実装
- SEFはTDDの本質を高い視点で捉えるための代替フレームワーク
テスト設計・ソフトウェア設計のレビュー
- テスト設計自体の質向上には Test Design Review スキルを別途導入
- 別エージェントによるバイアス回避
- 設計原則違反の検出・修正提案
- 一般的なソフトウェア設計原則の違反も Software Design Review で確認
- 「ものごとをそのまま呼ぶ」など基本原則の徹底
- テストが書きにくい場合は「キッチンを片付けてから料理する」発想でリファクタリングを検討
結論とAI活用の本質
- 100%満足できるテストは未達成だが、TDDスキル導入で大幅改善
- 時代を超える普遍的な原則 と AI の組み合わせが最大の生産性向上要因
- 新技術が登場しても、基本原則は不変で有用
この記事には日付があった方がいいね。最近の情報っぽいけど(インターネットアーカイブでは5月29日にキャッチされたみたい)、モデルやエージェントが進化するから、すぐに古くなっちゃう情報なんだよね。(最近は、Claude CodeとCodexに「uv run pytestでテストして、赤/緑TDDを使え」って言うだけで、いい結果が出てる。)