Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / ...
Search
r-kagaya
July 08, 2025
Programming
5
680
テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 / Agentic Coding starts with testing
2025/07/08(火)に開催されたClaude Code Meetup Japan #1の登壇資料です
https://aid.connpass.com/event/360017/
r-kagaya
July 08, 2025
Tweet
Share
More Decks by r-kagaya
See All by r-kagaya
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
50
33k
CursorとDevinが仲間!?AI駆動で新規プロダクト開発に挑んだ3ヶ月を振り返る / A Story of New Product Development with Cursor and Devin
rkaga
6
2.7k
データと事例で振り返るDevin導入の"リアル" / The Realities of Devin Reflected in Data and Case Studies
rkaga
3
4.2k
AIコーディングエージェントを 「使いこなす」ための実践知と現在地 in ログラス / How to Use AI Coding Agent in Loglass
rkaga
4
2.3k
AIコーディングワークフローの試行 〜AIエージェント×ワークフローでの自動化を目指して〜
rkaga
3
5.6k
Devin入門と最近のアップデートから見るDevinの進化 / Introduction to Devin and the Evolution of Devin as Seen in Recent Update
rkaga
11
6.6k
Devin入門 〜月500ドルから始まるAIチームメイトとの開発生活〜 / Introduction Devin 〜Development With AI Teammates〜
rkaga
7
4.8k
デザインパターンで理解するLLMエージェントの作り方 / How to develop an LLM agent using agentic design patterns
rkaga
17
7k
Automated Promptingを目指すその前に / Before we can aim for Automated Prompting
rkaga
1
270
Other Decks in Programming
See All in Programming
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
510
既存デザインを変更せずにタップ領域を広げる方法
tahia910
1
280
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
150
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
270
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
420
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
740
Deep Dive into ~/.claude/projects
hiragram
12
2.4k
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
720
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
2
640
XP, Testing and ninja testing
m_seki
3
240
すべてのコンテキストを、 ユーザー価値に変える
applism118
3
1.2k
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Six Lessons from altMBA
skipperchong
28
3.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
52k
Transcript
© 2024 Loglass Inc. 0 テストから始めるAgentic Coding 〜Claude Codeと共に行うTDD〜 2025年7⽉8⽇
株式会社ログラス r.kagaya 0
1 ⾃⼰紹介 新卒でヤフー株式会社に入社、ID連携システムの開発 2022年に株式会社ログラスに入社 経営管理SaaSの開発、開発生産性向上に取り組んだのち、 生成AI/LLMチームを立ち上げ、複数LLM機能の開発を リード 現在は新規AIプロダクトの立ち上げに従事 株式会社ログラス r.kagaya(@ry0_kaga)
2 今日の内容 主にテストが主題で、プラスTDD with Claude Code • AIコーディングにおけるテストの捉え方 • Claude
CodeでのTDD Claude Code、TDDよりテストが主役になってしまった
© 2024 Loglass Inc. 3 我々を取り巻く状況
4 1ヶ月前まで https://comemo.nikkei.com/n/n26dc284dcd5a
5 1年間の育休からの異世界転生 https://x.com/jamgodtree/status/1927682077719498893
6 1年間の育休からの異世界転生 https://x.com/jamgodtree/status/1927682077719498893
7 今となってはClaude Codeに大移動 余談: Clade Codeの開発責任者はCursorに移籍したらしい (https://x.com/btibor91/status/1940125489311752306)
8 Claude Code開発者の談 https://www.youtube.com/watch?v=Yf_1w00qIKc
9 Claude Code開発者の談 https://www.youtube.com/watch?v=Yf_1w00qIKc 「私はもう何ヶ月もユニットテストを書いていない」 「今では手書きコードを書くのが嫌になった。Claudeがあまりにも上手いか ら」 「パンチカードからプロンプトへ」
10 AI時代にテストにどう向き合うか?
© 2024 Loglass Inc. 11 AIコーディングにおけるテスト
12 スタンス テストの価値は変わらない・むしろ大きくなった 一方で捉え方や向き合い方は多少なり変わっていく
13 AIコーディングエージェントは変幻自在
14 ほとんどの人間よりコーディングに関する知識はある but.. 時たま顔を覗かせる、予測不可能な性質 このスーパー知能を我々は上手く協働・制御しないといけない
15 Agentic Coding and Vibe Coding Agentic Coding • Agentic
Codingは、自律的に動く AIエージェントをどのように導くか? オーケストレートするか? • 「人を増やす」から「Agentを増やす」 へのパラダイムシフト Vibe Coding • 対話型・人間主導、探索的なアプロー チ https://arxiv.org/pdf/2505.19443
16 Agentic Coding and Vibe Coding Agentic Coding • Agentic
Codingは、自律的に動く AIエージェントをどのように導くか? オーケストレートするか? • 「人を増やす」から「Agentを増やす」 へのパラダイムシフト Vibe Coding • 対話型・人間主導、探索的なアプロー チ • https://arxiv.org/pdf/2505.19443 Agentic CodingはAIを「導く」 AIをどこに導きたいか? ゴールに近づいてるかをどう図るか?
17 AIのアウトプットを収斂させるゴールと制約と評価(評価関数)をどう与えるか? AIの制約・ガードレールとして機能する歴戦の勇たち ある種のゴール・制約として機能する 通過まで自律的にAIは試行錯誤(勝手にテスト自体を消したりしない限り) • 型システムによる安全性の 担保 • 自動テストによる動作保証
• コーディング規約の自動 チェック 型(Types) テスト(Tests) リント(Lints)
18 テストがあるから色々できる 包括的なテストカバレッジがあれば、AIコード生成のリスクは減少する • テストの範囲で、AIによる多少違和感のあるコードでも受け入れられる ◦ なぜなら、テストでその動作は保証されているなら • 納得いくまでAIにリファクタリングを任せることもできる ◦
なぜなら、テストでその動作は保証されているなら テストは仕様を形式化し、AIとも共有可能な「認識の装置」
19 Agentic Codingには「明確なゴール・物差し」が必要 目的の場所に辿り着くのをただ祈るだけは辛い (これはこれでバイブスで楽しいが)
20 「良い感じに動くようにして」 「全ユニットテストをパスするコードを書いて」
21 「良い感じに動くようにして」 「全ユニットテストをパスするコードを書いて」 限りなくシンプル but 確かな目的地の提示
22 テストで一つの「理想の状態」をAIに示す テストが落ちること自体が具体的なフィードバック
23 ゴールがテストとして示されていれば、 少なくとも”テストを通過するコード”というアウトプッ トを得られる可能性は高い (テストを勝手に消す・コメントアウトするのは辞めさせよう!)
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
© 2024 Loglass Inc. 25 TDD with Claude Code
26 ようやくTDDの話... テストはAIコーディングに有意義と考えていることを 話した
27 t-wada氏によるTDD https://levtech.jp/media/article/interview/detail_480/ ・TDDを実践しながらコードを書く感覚をたとえるなら、不確実性にまみれた ソフトウェア開発に少しずつ確実性を持たせていく、一種の陣取り合戦みたい なものです。 ・その中で「こう動いてほしい」という期待を反映したテストを書き、それに対 するコードを書いて、動かしてみる。
28 t-wada氏によるTDD https://levtech.jp/media/article/interview/detail_480/ ・TDDを実践しながらコードを書く感覚をたとえるなら、不確実性にまみれた ソフトウェア開発に少しずつ確実性を持たせていく、一種の陣取り合戦みたい なものです。 ・その中で「こう動いてほしい」という期待を反映したテストを書き、それに対 するコードを書いて、動かしてみる。 仕様や設計を見つける・良くしていく過程がTDD 「何を作るべきか」という不明瞭さ、設計に向き合
いつつも、テストはAIを導く印にもなる
29 TDD with AI Agents テストをAIへの継続的フィードバック・ガードレールとして活用 振る舞いや仕様準拠の保証がある程度でも出来ていればその部分は安心 • 期待する動作をテストで定義し、AIへ仕様として提示 •
自動テストでAIが生成したコードの誤りを即座に検出 • 包括的なテストスイートで意図しない変更を防止 いかにAI生成コードを信じられる構造を作るか? そして、広範囲かつ高速なテストスイートが欲しくなってくる
30 Claude CodeでTDDを行うなら? (正直大したことはやっていない)
31 TDD with Claude code 最初の一歩はカスタムコマンド BDD + RGBC(RED-GREEN-BLUE-COMMIT)サイクルを模したカスタムコマンドを定 義
32 TDD with Claude code BDD + RGBCサイクル + ドキュメント生成まで行う指示を含め
たコマンドを定義
33 Swarm Intelligence 同じテストに対して複数の異なる実装を試す • 例えば、3パターン同時実装からのチェリーピック • 「とりあえず実装してみてから選ぶ」という贅沢 「今思えばあの設計の方が..でも期限が..」
34 Simon Willisonが提唱するPerfect Commit 実装・テスト・ドキュメントのフルセットをコミットに含める AIがあるから低コストで実現可能に https://simonwillison.net/2025/May/28/automated-tests/ カスタムコマンド内でPerfect Commitになるように設定 •
機能を実現するコード • その機能が正しく動作す ることを保証するテスト • コードの使い方や設計意 図の説明 実装(Implementation) テスト(Tests) ドキュメント(Documentatio)
35 Perfect Commitの実践例 コミットメッセージにはドキュメント・テストのパスも含める AIが探索する時のコンテキストになる(と信じて) *イメージ
36 また別軸の試行錯誤や思考
37 テストの高速化大事 (出来ていない)高速で実行される大量のテストを気軽に実行したい Kent Beckによる具体的な数値: 遅いテスト実行は人間にも億劫、言わんばAIもや https://newsletter.pragmaticengineer.com/p/tdd-ai-agents-and-coding-with-kent > 私のテストスイートは300ミリ秒で実行されます。これは、すべての変更後 に実行できるほど速いのです。AIが何かを誤って壊しても、私はすぐに気づ
きます。
38 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E
39 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E E2Eが最も少なくなるのは、コスト、実行 速度、不安定さなどが理由 (一方で某ポータルサイトのID連携システ
ムには、ほぼ全てのシナリオを網羅した E2Eがあり、安心感はあった)
40 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E 実行の遅さが解消されるかはわからない が、実装コストは確実に下がる (E2Eテストよりもブラウザ自動化エー
ジェントな世界かもしれない
41 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E いかにAIコードを信用できる構造を作る か?を考えたい E2Eが最適かはさておき、システムレイヤー
で振る舞いが保証されているのはわかりや すい例の一つ
42 試している ピラミッドの上下を手厚くして、砂時計型を目指してみる(Claude Codeの力でテスト生成) Unit Test E2E AIによってテストのコスト構造が変わった時 に、今と同じ感覚でE2E(相当の何か)を捉 えるべきか?何が変わるのか?
(を考えている)
43 Googleの「AlphaEvolve」 出典: https://xtech.nikkei.com/atcl/nxt/column/18/03248/062000001/
44 Googleの「AlphaEvolve」 出典: https://xtech.nikkei.com/atcl/nxt/column/18/03248/062000001/ 問題と評価式がインプットの世界 考えるべきは評価式。 「良い」や「理想状態」を定義・評価したい
45 Googleの「AlphaEvolve」 出典: https://xtech.nikkei.com/atcl/nxt/column/18/03248/062000001/ ソフトウェア開発・コーディングにおけ る評価式/評価関数は?
46 AIコーディングエージェントによる開発 is Reconciliation Loop? Reconciliation Loop is 「記述された理想状態と、現在の状態を比較し、その差分がなく なるまで調整する」
そのためには理想状態を定義できること、現在の状態との差分を評価・測れること 宣言的(Declarative)` 継続的(Continuous) 収束的(Convergent) 自己修復的(Self-healing) 46
47 AIコーディングエージェントによる開発 is Reconciliation Loop? Reconciliation Loop is 「記述された理想状態と、現在の状態を比較し、その差分がなく なるまで調整する」
そのためには理想状態を定義できること、現在の状態との差分を評価・測れること 宣言的(Declarative)` 継続的(Continuous) 収束的(Convergent) 自己修復的(Self-healing) 47 ここに活用できるのが BDDや形式手法?
© 2024 Loglass Inc. 48 まとめ
• テストはAIに対する指示書でありフィードバックであり、Reconciliation Loop を回すための評価関数かもしれない • テストを書くこと自体にもAIコーディングエージェントをどう使うか考える • Claude Codeでテスト/TDDを行うのにカスタムコマンドやPerfect Commit
の取り組みをしている • Hooksや形式手法ももっとうまく使いたいので、今後の自分に期待 49 まとめ
50