【びへいびあくどうせっけい】
ビヘイビア駆動設計(BDD) とは?
💡 「Given-When-Then」で誰でも読めるテストを書こう
📌 このページのポイント
- Given(前提)-When(操作)-Then(結果)の3ステップで振る舞いを記述する
- ビジネス関係者・QA・開発者の共通言語として機能する
- Cucumber、SpecFlow、Behaveなどのツールで自動テストとして実行できる
- TDDを発展させたもので、「テスト」ではなく「仕様」として振る舞いを定義する
BDDって、すでにbddという用語があるけど何が違うの?
bdd(振る舞い駆動開発)は開発プロセス全体の考え方で、ビヘイビア駆動設計は特にGiven-When-Then形式の仕様記述と設計にフォーカスしたものだよ。実務ではほぼ同じ文脈で使われることも多いんだ
Given-When-Thenって具体的にどう書くの?
この文章がそのままテストになるの?
TDDとの違いがまだよく分からないんだけど…
実際の現場では全部の機能にBDDを使うの?
まとめ:ざっくりこれだけ覚えればOK!
「BDD」って出てきたら「自然言語で書いた仕様がそのままテストになる開発手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Behavior-Driven Design / Development」 = 振る舞い駆動設計 / 開発
💬 ダン・ノースが2003年頃に提唱した手法で、TDDの「テスト」という言葉が開発者以外に馴染みにくい問題を解決するために「振る舞い(Behavior)」という表現を採用したんだよ