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

受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える

受け入れテスト駆動開発(ATDD)×AI駆動開発 AI時代のATDDの取り組み方を考える

Avatar for Takasaki Kazunari

Takasaki Kazunari

February 20, 2026
Tweet

Other Decks in Programming

Transcript

  1. 仕様駆動開発 (SDD)とは 要件定義 設計 実装計画 実装 AIでコーディングを始める前に綿密に仕様を作成する開発手法 実現したい機能の 要件を明確化 要件をもとに実装方

    針などの設計を確 定 設計を踏まえてどう 実装するかをタスク として分解 タスクごとに実装を 行う 受け入れテスト駆動開発の受け入れテスト作成 に類似 実装前に自然言語でドキュメントを作成し、人間がレビューする。
  2. 受け入れテスト駆動開発 (ATDD)と仕様駆動開発 (SDD)の違い 人間同士 の認識齟齬解消 開発者と AIの認識齟齬解消 ATDDとSDDは目的が異なるため、適用するフェーズや記述方法が異なる 目的 フェーズ

    受け入れテスト駆動開発 (ATDD) 仕様駆動開発 (SDD) 機能実装タスク着手前 機能実装タスク着手後 記述方法 ユーザーストーリー 機能の仕様
  3. 発見フェーズでの AI活用 1.発見 AI活用例: 具体例のたたき台の作成 AIによって作成した具体例を元に議論することで、 人間が見落としがちな観点の補 完や議論の時間短縮 につながる。 関係者が集まり議論することは必要

    ATDDの目的: 関係者間の認識齟齬を事前に解消すること AIの成果物には批判的 な目線は常に必要。 AIで作成した具体例。受入条件にはなかった後方互換性について たたき台を提示している。 一覧画面での表示は? カテゴリー選択は必須? その場合、すでに登録されて いる取引データのカテゴリー はどうする? 支出入力画面と収入入力画 面を切り替えたとき、前に入 力した値は保持する?
  4. 実装・自動受け入れテストフェーズでの AI活用 実装 自動受け入れテスト AI活用例: 自動受け入れテストが通るように実装を指示する 実装完了→自動受け入れテスト実行だと、テスト失敗ごとに AIとの往復が発生。 テストが成功するまで実装を続けさせる ことで少ない往復でテスト合格まで完了でき

    る。 ※単に「このシナリオが合格するように実装して」という指示だけだと、フロントエンド上は 満たしていても値がデータベースに保存されていない、ということも起こり得るため、普通 のAIコーディングのように具体的な指示は必要。 ATDDの実装フェーズにおける方法はTDDが推奨だが、 手段は自由。 ここでSDDを用いることもできる。
  5. 完成した家計簿アプリのカテゴリー機能 実装は1往復のみで、 POが求めていた機能を実装完了 ATDDで実施したことで • 最初の受入条件だけでは不明確だった部分を関係者と事前に FIXし、 実装後の手戻りを防止できた。 • 実装段階では、Vibe

    Codingでありがちな要求以上の過剰な実装や実 装漏れによる手戻りを避けられた。 • 受け入れテストが自動化されていることで、 AIが作成した機能が要求 通りかを確かめる時間の短縮 、かつ実装時のガイドになった。
  6. まとめ: 実践ATDD×AI 1.発見 2.定式化 3.自動化 実装 自動受け入れテスト AI活用例 注意事項 具体例のたたき台作成

    関係者間の議論は必須 自動テストの作成 定式化と自動化を同時に実施 AIコーディング 具体的な指示は必要 ATDD×AIによるメリット • 関係者間の認識齟齬による実装後の手戻り防止 • 自動受け入れテストによる実装中の手戻り防止 • 自動受け入れテストによる実装後のテスト実施時間短縮
  7. まとめ: 実践ATDD×AI 1.発見 2.定式化 3.自動化 実装 自動受け入れテスト AI活用例 注意事項 具体例のたたき台作成

    関係者間の議論は必須 自動テストの作成 定式化と自動化を同時に実施 AIコーディング 具体的な指示は必要 ATDD×AIによるメリット • 関係者間の認識齟齬による実装後の手戻り防止 • 自動受け入れテストによる実装中の手戻り防止 • 自動受け入れテストによる実装後のテスト実施時間短縮