【えーてぃーでぃーでぃー】
ATDD(受入テスト駆動開発) とは?
最終更新:
💡 「何ができたらOK?」を先に決めてから作る、ゴール先行の開発術
顧客・ビジネス、開発、テストの視点を持つ人が協力し、機能を実装する前に受入テストを具体化する開発手法。利用者が期待する振る舞いを共有し、それを確かめながら実装を進める。
📌 このページのポイント
ATDDってTDDとどう違うの?
TDDではコードに近いテストを先に書いて実装を導くよ。ATDDでは顧客・開発・テストの視点を持ち寄り、利用者が何をできればよいかを受入テストにする。見る範囲が違うので、両方を組み合わせられるんだ。
受入テストってどう書くの?
前提・操作・期待する結果を具体的にしよう。Given-When-Thenという書き方なら、たとえば「前提:在庫のある商品がカートに入り、購入情報がそろっている」「操作:注文を確定する」「結果:注文番号が表示される」という例にできる。必須の形式ではないよ。
非エンジニアにも分かるの?
業務の言葉で具体例を話し合うことが大事だよ。曖昧な要件や認識の違いを実装前に見つけやすくなる。テストを自動化する場合もあるけれど、ツールを入れるだけで認識が一致するわけではないんだ。
BDDとは何が違うの?
利用者の振る舞いを具体例で共有する点など、かなり重なるよ。ATDDでは受入テストを先に作って実装を導く点が強調される。BDDとの境界を厳密に固定するより、何を話し合い、どう確かめるかをチームでそろえよう。
受入テストが全部通れば完成?
定義した例に合うことを確認できても、未定義のケースや性能・安全性などをすべて保証するわけではないよ。必要なテストや完成条件も確認しよう。例を細かく増やしすぎると保守が重くなるので、重要な業務ルールや例外を選ぶんだ。
まとめ:ざっくりこれだけ覚えればOK!
「ATDD」って出てきたら「受入テストを先に書いてからコードを書く開発手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Acceptance Test-Driven Development」 = 受入テスト駆動開発
💬 受入テストを先に具体化し、開発の方向を導くという意味だよ。テストに合格したことだけで、あらゆる品質や完成条件を満たしたとは限らないんだ。