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
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Takasaki Kazunari
February 20, 2026
Programming
1
200
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
Takasaki Kazunari
February 20, 2026
Tweet
Share
Other Decks in Programming
See All in Programming
浮動小数の比較について
kishikawakatsumi
0
320
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
400
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
370
iOSアプリでフロントエンドと仲良くする
ryunakayama
0
110
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
1.8k
Oxlintはいいぞ
yug1224
5
1.5k
AI & Enginnering
codelynx
0
140
SourceGeneratorのススメ
htkym
0
620
AIプロダクト時代のQAエンジニアに求められること
imtnd
1
440
JPUG勉強会 OSSデータベースの内部構造を理解しよう
oga5
2
200
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
190
Python’s True Superpower
hynek
0
180
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
84
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7k
Fireside Chat
paigeccino
41
3.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Amusing Abliteration
ianozsvald
0
110
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
130
Transcript
受け入れテスト駆動開発 (ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える 高崎和成
アジェンダ 受け入れテスト駆動開発とは 受け入れテスト駆動開発と仕様駆動開発の違い 実践ATDD×AI
KDDI Agile Development Center Corporation 受け入れテスト駆動開発とは
受け入れテスト駆動開発 (ATDD)とは 受け入れテストを作成 (具体例を用いた自然言語によるテスト ) 実装 自動受け入れテスト 機能を実装する前に具体例を用いた受け入れテスト を作成する開発手法 1.発見
2.定式化 3.自動化 ※振る舞い駆動開発 (BDD)とほぼ同じ です。
受け入れテスト駆動開発 (ATDD)とは 特に受け入れテストの作成が重要。関係者が集まって テストを作成する。 PO 開発者 デザイナー テスター 具体例を元にそれぞれの視点で実装する機能の疑問点を洗い出し、関係者間で認 識を揃え、認識齟齬による手戻りを防ぐ
。 エラー時の挙動は? バリデーションは? 入力できる項目は? ボタンの大きさは? 境界値での挙動は?
受け入れテストを作成する 3つのステップ 1.発見 2.定式化 3.自動化
受け入れテストを作成する 3つのステップ 関係者が集まり 、機能の疑問点や実装方針を具体例で書き出して議論する。 付箋などを用いて全員参加型のワークショップ形式で行うと良い。 この時点では疑問点を出し切って書き出すことが重要。 1.発見
受け入れテストを作成する 3つのステップ 発見フェーズで得た具体例を、特定のフォーマットのシナリオとして記述する。 ユーザーストーリー 形式で記述する。 Gherkin記法 Given(前提)/When(もし)/Then(ならば)を用いて受け入れテストを 自然言語で記述する記法。 2.定式化
受け入れテストを作成する 3つのステップ 定式化したシナリオを自動でテスト実行できるようにする。 Cucumberなどのフレームワークを用いると、定式化したテストと自動化 のスクリプトを結びつけることができる。 3.自動化 https://cucumber.io/
まとめ: 受け入れテスト駆動開発 (ATDD)とは 受け入れテストを作成 (具体例を用いた自然言語によるテスト ) 実装 自動受け入れテスト 機能を実装する前に具体例を用いた受け入れテストを作成する開発手法 1.発見
2.定式化 3.自動化 目的 実装前に関係者間で議論をし、考慮漏れや認 識齟齬を減らして実装後の手戻りを防ぐ
KDDI Agile Development Center Corporation 受け入れテスト駆動開発と 仕様駆動開発の違い
仕様駆動開発 (SDD)とは 要件定義 設計 実装計画 実装 AIでコーディングを始める前に綿密に仕様を作成する開発手法 実現したい機能の 要件を明確化 要件をもとに実装方
針などの設計を確 定 設計を踏まえてどう 実装するかをタスク として分解 タスクごとに実装を 行う
仕様駆動開発 (SDD)とは 要件定義 設計 実装計画 実装 AIでコーディングを始める前に綿密に仕様を作成する開発手法 実現したい機能の 要件を明確化 要件をもとに実装方
針などの設計を確 定 設計を踏まえてどう 実装するかをタスク として分解 タスクごとに実装を 行う 受け入れテスト駆動開発の受け入れテスト作成 に類似 実装前に自然言語でドキュメントを作成し、人間がレビューする。
ATDDの受け入れテストと SDDの要件定義書の違い ATDDの受け入れテスト SDDの要件定義書 実装前に具体例を用いて考慮漏れや 関係者(人間)の認識齟齬を解消すること 目的 AIが解釈・実行可能な 「厳密な仕様書」へと 落とし込むこと
目的
受け入れテスト駆動開発 (ATDD)と仕様駆動開発 (SDD)の違い 人間同士 の認識齟齬解消 開発者と AIの認識齟齬解消 ATDDとSDDは目的が異なるため、適用するフェーズや記述方法が異なる 目的 フェーズ
受け入れテスト駆動開発 (ATDD) 仕様駆動開発 (SDD) 機能実装タスク着手前 機能実装タスク着手後 記述方法 ユーザーストーリー 機能の仕様
ATDDとSDDは組み合わせ可能 受け入れテストを作成 (具体例を用いた自然言語によるテスト ) 実装 自動受け入れテスト 1.発見 2.定式化 3.自動化 ATDDは実装の外側のプロセス。SDDは実装プロセス。
ATDDの範囲 SDDの範囲
KDDI Agile Development Center Corporation 実践ATDD×AI
実装する機能 実装前 実装後 入力画面 取引一覧画面 家計簿アプリを例にカテゴリー機能 をATDD×AIで作成する
実装する機能 : PBI例 上記を体験するため、あえて受入条件を絞っている。 ※カテゴリーマスタは紙面の都合上カット ATDDの最大の目的は、不明確な点を 事前に明らかにすること
発見フェーズでの AI活用 1.発見 AI活用例: 具体例のたたき台の作成 AIによって作成した具体例を元に議論することで、 人間が見落としがちな観点の補 完や議論の時間短縮 につながる。 関係者が集まり議論することは必要
ATDDの目的: 関係者間の認識齟齬を事前に解消すること AIの成果物には批判的 な目線は常に必要。 AIで作成した具体例。受入条件にはなかった後方互換性について たたき台を提示している。 一覧画面での表示は? カテゴリー選択は必須? その場合、すでに登録されて いる取引データのカテゴリー はどうする? 支出入力画面と収入入力画 面を切り替えたとき、前に入 力した値は保持する?
定式化・自動化フェーズでの AI活用 AI活用例: 具体例をGherkinなどに定式化・自動化 発見フェーズで作成し関係者間で合意した具体例について、 Gherkinなどの特定の 記法に定式化し自動化する。 • 作成した具体例をMCPサーバーなどを利用してコンテキスト に取り込み、Gherkin記法のシナリオを作成する。
• 自動化も同時 にやってしまうとよさそう。 2.定式化 3.自動化
実装・自動受け入れテストフェーズでの AI活用 実装 自動受け入れテスト AI活用例: 自動受け入れテストが通るように実装を指示する 実装完了→自動受け入れテスト実行だと、テスト失敗ごとに AIとの往復が発生。 テストが成功するまで実装を続けさせる ことで少ない往復でテスト合格まで完了でき
る。 ※単に「このシナリオが合格するように実装して」という指示だけだと、フロントエンド上は 満たしていても値がデータベースに保存されていない、ということも起こり得るため、普通 のAIコーディングのように具体的な指示は必要。 ATDDの実装フェーズにおける方法はTDDが推奨だが、 手段は自由。 ここでSDDを用いることもできる。
完成した家計簿アプリのカテゴリー機能 実装は1往復のみで、 POが求めていた機能を実装完了 ATDDで実施したことで • 最初の受入条件だけでは不明確だった部分を関係者と事前に FIXし、 実装後の手戻りを防止できた。 • 実装段階では、Vibe
Codingでありがちな要求以上の過剰な実装や実 装漏れによる手戻りを避けられた。 • 受け入れテストが自動化されていることで、 AIが作成した機能が要求 通りかを確かめる時間の短縮 、かつ実装時のガイドになった。
まとめ: 実践ATDD×AI 1.発見 2.定式化 3.自動化 実装 自動受け入れテスト AI活用例 注意事項 具体例のたたき台作成
関係者間の議論は必須 自動テストの作成 定式化と自動化を同時に実施 AIコーディング 具体的な指示は必要 ATDD×AIによるメリット • 関係者間の認識齟齬による実装後の手戻り防止 • 自動受け入れテストによる実装中の手戻り防止 • 自動受け入れテストによる実装後のテスト実施時間短縮
KDDI Agile Development Center Corporation まとめ
まとめ: 本発表のアジェンダ 受け入れテスト駆動開発とは 受け入れテスト駆動開発と仕様駆動開発の違い 実践ATDD×AI
まとめ: 受け入れテスト駆動開発 (ATDD)とは 受け入れテストを作成 (具体例を用いた自然言語によるテスト ) 実装 自動受け入れテスト 機能を実装する前に具体例を用いた受け入れテストを作成する開発手法 1.発見
2.定式化 3.自動化 目的 実装前に関係者間で議論をし、考慮漏れや認 識齟齬を減らして実装後の手戻りを防ぐ
まとめ: 受け入れテスト駆動開発と仕様駆動開発の違い 受け入れテストを作成 (具体例を用いた自然言語によるテスト ) 実装 自動受け入れテスト 1.発見 2.定式化 3.自動化
ATDDは実装の外側のプロセス。SDDは実装プロセス。 ATDDの範囲 SDDの範囲
まとめ: 実践ATDD×AI 1.発見 2.定式化 3.自動化 実装 自動受け入れテスト AI活用例 注意事項 具体例のたたき台作成
関係者間の議論は必須 自動テストの作成 定式化と自動化を同時に実施 AIコーディング 具体的な指示は必要 ATDD×AIによるメリット • 関係者間の認識齟齬による実装後の手戻り防止 • 自動受け入れテストによる実装中の手戻り防止 • 自動受け入れテストによる実装後のテスト実施時間短縮
KDDI Agile Development Center Corporation AI時代にも受け入れテスト駆動開発 (ATDD)を活用していきましょう!
Be a Change Leader. アジャイルに力を与え 共に成長し続ける社会を創る