【びへいびあくどうかいはつ】
BDD(ビヘイビア駆動開発) とは?
最終更新:
💡 具体例を話し合い、振る舞いの認識をそろえる
関係者が具体例を使って必要な振る舞いを話し合い、共通の理解を作りながら開発する手法。合意した例を分かりやすく記述し、必要に応じて実行可能なテストへつなげる。TDDから発展した考え方。
📌 このページのポイント
- 企画・開発・テストなどの関係者が具体例を使って認識をそろえる
- Given(前提)・When(出来事)・Then(結果)で例を表せる
- Cucumberでは、シナリオのステップと実行用コードを接続する
- ユーザーの操作だけでなく、プログラム内部の振る舞いにも使える
TDDと何が違うの?
Given・When・Thenって何?
シナリオを書けばそのまま動く?
Cucumberでは、各ステップに対応する実行用コードを用意するよ。たとえば「商品を1つ追加する」に一致したコードが操作し、「個数が1になる」に一致したコードが結果を確かめる。文章だけで操作や検査が自動的に決まるわけではないんだ。
企画担当も一緒に書ける?
一緒に具体例を話し合うことが大切だよ。必要な振る舞いを発見し、例を読みやすく整理し、それをテストにつなげる。ツールの導入だけでなく、関係者が共通の理解を作る過程がBDDなんだ。
図の例だけで十分に確認できる?
その例が確認するのは、空のカートへ1つ追加した場合だよ。必要な振る舞いを考えるなら、既に商品がある場合や追加できない場合も話し合える。どの例を検査するかは、求める仕様に合わせて決めるんだ。
まとめ:ざっくりこれだけ覚えればOK!
「BDD」って出てきたら「具体例で振る舞いの認識をそろえて開発する手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Behavior-Driven Development」 = 振る舞いに駆動される開発
💬 Dan Northが2000年代初頭に考案し、2006年の記事で紹介した考え方。TDDを説明する中で、テストがどんな振る舞いを表すのかに注目したんだ。