Movatterモバイル変換


[0]ホーム

URL:


Upgrade to Pro — share decks privately, control downloads, hide ads and more …
Speaker DeckSpeaker Deck
Speaker Deck

テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / ...

Avatar for r-kagaya r-kagaya
July 08, 2025

テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing

2025/07/08(火)に開催されたClaude Code Meetup Japan #1の登壇資料です
https://aid.connpass.com/event/360017/

Avatar for r-kagaya

r-kagaya

July 08, 2025
Tweet

More Decks by r-kagaya

See All by r-kagaya

Other Decks in Programming

See All in Programming

Featured

See All Featured

Transcript

  1. © 2024 Loglass Inc. 0 テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 2025年7⽉8⽇

    株式会社ログラス r.kagaya 0
  2. 1 ⾃⼰紹介 新卒でヤフー株式会社に入社、ID連携システムの開発 2022年に株式会社ログラスに入社 経営管理SaaSの開発、開発生産性向上に取り組んだのち、 生成AI/LLMチームを立ち上げ、複数LLM機能の開発を リード 現在は新規AIプロダクトの立ち上げに従事 株式会社ログラス r.kagaya(@ry0_kaga)

  3. 2 今日の内容 主にテストが主題で、プラスTDD with Claude Code • AIコーディングにおけるテストの捉え方 • Claude

    CodeでのTDD Claude Code、TDDよりテストが主役になってしまった
  4. © 2024 Loglass Inc. 3 我々を取り巻く状況

  5. 4 1ヶ月前まで https://comemo.nikkei.com/n/n26dc284dcd5a

  6. 5 1年間の育休からの異世界転生 https://x.com/jamgodtree/status/1927682077719498893

  7. 6 1年間の育休からの異世界転生 https://x.com/jamgodtree/status/1927682077719498893

  8. 7 今となってはClaude Codeに大移動 余談: Clade Codeの開発責任者はCursorに移籍したらしい (https://x.com/btibor91/status/1940125489311752306)

  9. 8 Claude Code開発者の談 https://www.youtube.com/watch?v=Yf_1w00qIKc

  10. 9 Claude Code開発者の談 https://www.youtube.com/watch?v=Yf_1w00qIKc 「私はもう何ヶ月もユニットテストを書いていない」 「今では手書きコードを書くのが嫌になった。Claudeがあまりにも上手いか ら」 「パンチカードからプロンプトへ」

  11. 10 AI時代にテストにどう向き合うか?

  12. © 2024 Loglass Inc. 11 AIコーディングにおけるテスト

  13. 12 スタンス テストの価値は変わらない・むしろ大きくなった 一方で捉え方や向き合い方は多少なり変わっていく

  14. 13 AIコーディングエージェントは変幻自在

  15. 14 ほとんどの人間よりコーディングに関する知識はある but.. 時たま顔を覗かせる、予測不可能な性質 このスーパー知能を我々は上手く協働・制御しないといけない

  16. 15 Agentic Coding and Vibe Coding Agentic Coding • Agentic

    Codingは、自律的に動く AIエージェントをどのように導くか? オーケストレートするか? • 「人を増やす」から「Agentを増やす」 へのパラダイムシフト Vibe Coding • 対話型・人間主導、探索的なアプロー チ https://arxiv.org/pdf/2505.19443
  17. 16 Agentic Coding and Vibe Coding Agentic Coding • Agentic

    Codingは、自律的に動く AIエージェントをどのように導くか? オーケストレートするか? • 「人を増やす」から「Agentを増やす」 へのパラダイムシフト Vibe Coding • 対話型・人間主導、探索的なアプロー チ • https://arxiv.org/pdf/2505.19443 Agentic CodingはAIを「導く」 AIをどこに導きたいか? ゴールに近づいてるかをどう図るか?
  18. 17 AIのアウトプットを収斂させるゴールと制約と評価(評価関数)をどう与えるか? AIの制約・ガードレールとして機能する歴戦の勇たち ある種のゴール・制約として機能する 通過まで自律的にAIは試行錯誤(勝手にテスト自体を消したりしない限り) • 型システムによる安全性の 担保 • 自動テストによる動作保証

    • コーディング規約の自動 チェック 型(Types) テスト(Tests) リント(Lints)
  19. 18 テストがあるから色々できる 包括的なテストカバレッジがあれば、AIコード生成のリスクは減少する • テストの範囲で、AIによる多少違和感のあるコードでも受け入れられる ◦ なぜなら、テストでその動作は保証されているなら • 納得いくまでAIにリファクタリングを任せることもできる ◦

    なぜなら、テストでその動作は保証されているなら テストは仕様を形式化し、AIとも共有可能な「認識の装置」
  20. 19 Agentic Codingには「明確なゴール・物差し」が必要 目的の場所に辿り着くのをただ祈るだけは辛い (これはこれでバイブスで楽しいが)

  21. 20 「良い感じに動くようにして」 「全ユニットテストをパスするコードを書いて」

  22. 21 「良い感じに動くようにして」 「全ユニットテストをパスするコードを書いて」 限りなくシンプル but 確かな目的地の提示

  23. 22 テストで一つの「理想の状態」をAIに示す テストが落ちること自体が具体的なフィードバック

  24. 23 ゴールがテストとして示されていれば、 少なくとも”テストを通過するコード”というアウトプッ トを得られる可能性は高い (テストを勝手に消す・コメントアウトするのは辞めさせよう!)

  25. 24 > "The role is changing from someone who writes

    code to someone who teaches AI what good code looks like. Tests are the curriculum." > (役割は、コードを書く人から、良いコードとは何かをAIに教える人へと変 わっています。テストがそのカリキュラムなのです。) Kent Beck談 https://newsletter.pragmaticengineer.com/p/tdd-ai-agents-and-coding-with-kent
  26. © 2024 Loglass Inc. 25 TDD with Claude Code

  27. 26 ようやくTDDの話... テストはAIコーディングに有意義と考えていることを 話した

  28. 27 t-wada氏によるTDD https://levtech.jp/media/article/interview/detail_480/ ・TDDを実践しながらコードを書く感覚をたとえるなら、不確実性にまみれた ソフトウェア開発に少しずつ確実性を持たせていく、一種の陣取り合戦みたい なものです。 ・その中で「こう動いてほしい」という期待を反映したテストを書き、それに対 するコードを書いて、動かしてみる。

  29. 28 t-wada氏によるTDD https://levtech.jp/media/article/interview/detail_480/ ・TDDを実践しながらコードを書く感覚をたとえるなら、不確実性にまみれた ソフトウェア開発に少しずつ確実性を持たせていく、一種の陣取り合戦みたい なものです。 ・その中で「こう動いてほしい」という期待を反映したテストを書き、それに対 するコードを書いて、動かしてみる。 仕様や設計を見つける・良くしていく過程がTDD 「何を作るべきか」という不明瞭さ、設計に向き合

    いつつも、テストはAIを導く印にもなる
  30. 29 TDD with AI Agents テストをAIへの継続的フィードバック・ガードレールとして活用 振る舞いや仕様準拠の保証がある程度でも出来ていればその部分は安心 • 期待する動作をテストで定義し、AIへ仕様として提示 •

    自動テストでAIが生成したコードの誤りを即座に検出 • 包括的なテストスイートで意図しない変更を防止 いかにAI生成コードを信じられる構造を作るか? そして、広範囲かつ高速なテストスイートが欲しくなってくる
  31. 30 Claude CodeでTDDを行うなら? (正直大したことはやっていない)

  32. 31 TDD with Claude code 最初の一歩はカスタムコマンド BDD + RGBC(RED-GREEN-BLUE-COMMIT)サイクルを模したカスタムコマンドを定 義

  33. 32 TDD with Claude code BDD + RGBCサイクル + ドキュメント生成まで行う指示を含め

    たコマンドを定義
  34. 33 Swarm Intelligence 同じテストに対して複数の異なる実装を試す • 例えば、3パターン同時実装からのチェリーピック • 「とりあえず実装してみてから選ぶ」という贅沢 「今思えばあの設計の方が..でも期限が..」

  35. 34 Simon Willisonが提唱するPerfect Commit 実装・テスト・ドキュメントのフルセットをコミットに含める AIがあるから低コストで実現可能に https://simonwillison.net/2025/May/28/automated-tests/ カスタムコマンド内でPerfect Commitになるように設定 •

    機能を実現するコード • その機能が正しく動作す ることを保証するテスト • コードの使い方や設計意 図の説明 実装(Implementation) テスト(Tests) ドキュメント(Documentatio)
  36. 35 Perfect Commitの実践例 コミットメッセージにはドキュメント・テストのパスも含める AIが探索する時のコンテキストになる(と信じて) *イメージ

  37. 36 また別軸の試行錯誤や思考

  38. 37 テストの高速化大事 (出来ていない)高速で実行される大量のテストを気軽に実行したい Kent Beckによる具体的な数値: 遅いテスト実行は人間にも億劫、言わんばAIもや https://newsletter.pragmaticengineer.com/p/tdd-ai-agents-and-coding-with-kent > 私のテストスイートは300ミリ秒で実行されます。これは、すべての変更後 に実行できるほど速いのです。AIが何かを誤って壊しても、私はすぐに気づ

    きます。
  39. 38 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E

  40. 39 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E E2Eが最も少なくなるのは、コスト、実行 速度、不安定さなどが理由 (一方で某ポータルサイトのID連携システ

    ムには、ほぼ全てのシナリオを網羅した E2Eがあり、安心感はあった)
  41. 40 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E 実行の遅さが解消されるかはわからない が、実装コストは確実に下がる (E2Eテストよりもブラウザ自動化エー

    ジェントな世界かもしれない
  42. 41 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E いかにAIコードを信用できる構造を作る か?を考えたい E2Eが最適かはさておき、システムレイヤー

    で振る舞いが保証されているのはわかりや すい例の一つ
  43. 42 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E AIによってテストのコスト構造が変わった時 に、今と同じ感覚でE2E(相当の何か)を捉 えるべきか?何が変わるのか?

    (を考えている)
  44. 43 Googleの「AlphaEvolve」 出典: https://xtech.nikkei.com/atcl/nxt/column/18/03248/062000001/

  45. 44 Googleの「AlphaEvolve」 出典: https://xtech.nikkei.com/atcl/nxt/column/18/03248/062000001/ 問題と評価式がインプットの世界 考えるべきは評価式。 「良い」や「理想状態」を定義・評価したい

  46. 45 Googleの「AlphaEvolve」 出典: https://xtech.nikkei.com/atcl/nxt/column/18/03248/062000001/ ソフトウェア開発・コーディングにおけ る評価式/評価関数は?

  47. 46 AIコーディングエージェントによる開発 is Reconciliation Loop? Reconciliation Loop is 「記述された理想状態と、現在の状態を比較し、その差分がなく なるまで調整する」

    そのためには理想状態を定義できること、現在の状態との差分を評価・測れること 宣言的(Declarative)` 継続的(Continuous) 収束的(Convergent) 自己修復的(Self-healing) 46
  48. 47 AIコーディングエージェントによる開発 is Reconciliation Loop? Reconciliation Loop is 「記述された理想状態と、現在の状態を比較し、その差分がなく なるまで調整する」

    そのためには理想状態を定義できること、現在の状態との差分を評価・測れること 宣言的(Declarative)` 継続的(Continuous) 収束的(Convergent) 自己修復的(Self-healing) 47 ここに活用できるのが BDDや形式手法?
  49. © 2024 Loglass Inc. 48 まとめ

  50. • テストはAIに対する指示書でありフィードバックであり、Reconciliation Loop を回すための評価関数かもしれない • テストを書くこと自体にもAIコーディングエージェントをどう使うか考える • Claude Codeでテスト/TDDを行うのにカスタムコマンドやPerfect Commit

    の取り組みをしている • Hooksや形式手法ももっとうまく使いたいので、今後の自分に期待 49 まとめ
  51. 50


[8]ページ先頭

©2009-2025 Movatter.jp