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
Takasaki Kazunari
February 20, 2026
Programming
1
87
受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える
Takasaki Kazunari
February 20, 2026
Tweet
Share
Other Decks in Programming
See All in Programming
CSC307 Lecture 12
javiergs
PRO
0
440
AIコーディングの理想と現実 2026 | AI Coding: Expectations vs. Reality 2026
tomohisa
0
320
Railsの気持ちを考えながらコントローラとビューを整頓する/tidying-rails-controllers-and-views-as-rails-think
moro
4
300
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
380
CSC307 Lecture 10
javiergs
PRO
1
690
Rubyと楽しいをつくる / Creating joy with Ruby
chobishiba
0
180
CSC307 Lecture 07
javiergs
PRO
1
560
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
2
170
atmaCup #23でAIコーディングを活用した話
ml_bear
4
610
2026年 エンジニアリング自己学習法
yumechi
0
150
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
170
ノイジーネイバー問題を解決する 公平なキューイング
occhi
0
120
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
460
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
490
The Pragmatic Product Professional
lauravandoore
37
7.2k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
320
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
57
Un-Boring Meetings
codingconduct
0
210
Optimising Largest Contentful Paint
csswizardry
37
3.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Fireside Chat
paigeccino
41
3.8k
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. アジャイルに力を与え 共に成長し続ける社会を創る