【びへいびあくどうかいはつ】
BDD(ビヘイビア駆動開発) とは?
💡 「ユーザー目線のシナリオ」がそのままテストになる開発手法
📌 このページのポイント
TDDと何が違うの?
Given・When・Thenって何?
おもしろい!自然言語で書けるって、プログラマじゃなくても書けるの?
そこがBDDの狙い。企画担当やビジネス側の人がシナリオを書いて、エンジニアがそれを実行可能なテストコードに落とし込む。Cucumberなどのツールは「日本語のシナリオ」をそのままテストとして実行できる仕組みを持っている。
じゃあBDDを使えばバグはゼロになる?
ゼロにはならない。BDDが防げるのは「仕様の認識違い」によるバグ。書かれたシナリオ以外のケースや、パフォーマンスの問題までは防げない。ただ「そもそも何を作るべきか」のズレが減るだけで手戻りは大幅に減る。
BDDのテストが大量になると管理が大変そうだけど…
まとめ:ざっくりこれだけ覚えればOK!
BDDって出てきたら「ユーザーの振る舞いを自然言語風に書いてテストする開発手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Behavior-Driven Development」 = 振る舞いに駆動(先導)される開発
💬 Dan Northが2006年頃に提唱。TDDの「テスト」という言葉が誤解を招きやすいことから、「振る舞い(Behavior)」に焦点を当てた表現に改めた