ビヘイビア駆動開発
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ビヘイビア駆動開発 (振舞駆動開発; behavior driven development; BDD)とは、プログラム開発手法の一種で、テスト駆動開発から派生した物である。
目次 |
概要 [編集]
テスト駆動開発で記述されるテストケースは、作成したプログラムの動作が正しいかどうかを検証するために行う「テスト」である。テストであるという点は同一であるが、加えて、これから作成しようとするプログラムに期待される「振る舞い」や「制約条件」、つまり「要求仕様」に近い形で、自然言語を併記しながらテストコードを記述する。テストフレームワークのメソッド名も自然言語(英語など)に近い形をとっている。
テストコードの可読性があがる上、テストコードが要求仕様となりうる。要求仕様からテストコードを起こすさいも、スムーズにコードに移行しやすい。
BDDではスペック(仕様)とテストは限りなく近い物である。従って、テスト駆動開発における「テストファースト」は、BDDにおいては「スペックファースト」となり、スペックを作ってから実装するという、より自然な形でのプログラム製作を実現している。
いくつかのテストフレームワークは、
- アプリケーションの振る舞いを記述するストーリーフレームワーク
- オブジェクトの振る舞いを記述するスペックフレームワーク
の2種類を含む。
具体例 [編集]
easyb の場合 [編集]
Groovyのeasybの場合。
scenario "ユーザーリストに2人追加と存在確認", { given "空のユーザーリスト", { userList = [] } when "太郎を追加", { userList.add "太郎" } and when "花子を追加", { userList.add "花子" } then "ユーザーリストには太郎が含まれている", { userList.shouldHave "太郎" } and then "ユーザーリストには花子が含まれている", { userList.shouldHave "花子" } }