ビヘイビア駆動開発(ビヘイビアくどうかいはつ、振舞駆動開発; behavior driven development; BDD)とは、プログラム開発手法の一種で、テスト駆動開発から派生した物である[1][2]

概要

編集

テスト駆動開発で記述されるテストケースは、作成したプログラムの動作が正しいかどうかを検証するために行う「テスト」である。テストであるという点は同一であるが、加えて、これから作成しようとするプログラムに期待される「振る舞い」や「制約条件」、つまり「要求仕様」に近い形で、自然言語を併記しながらテストコードを記述する。テストフレームワークのメソッド名も自然言語(英語など)に近い形をとっている。

テストコードの可読性があがる上、テストコードが要求仕様となりうる。要求仕様からテストコードを起こす際も、スムーズにコードに移行しやすい。

BDDではスペック(仕様)とテストは限りなく近い物である。従って、テスト駆動開発における「テストファースト」は、BDDにおいては「スペックファースト」となり、スペックを作ってから実装するという、より自然な形でのプログラム製作を実現している。

いくつかのテストフレームワークは、

  • アプリケーションの振る舞いを記述するストーリーフレームワーク
  • オブジェクトの振る舞いを記述するスペックフレームワーク

の2種類を含む。

具体例

編集

easyb の場合

編集

Groovyのeasybの場合。

scenario "ユーザーリストに2人追加と存在確認", {
   given "空のユーザーリスト", {
       userList = []
   }
   when "太郎を追加", {
       userList.add "太郎"
   }
   and
   when "花子を追加", {
       userList.add "花子"
   }
   then "ユーザーリストには太郎が含まれている", {
       userList.shouldHave "太郎"
   }
   and
   then "ユーザーリストには花子が含まれている", {
       userList.shouldHave "花子"
   }
}

脚注

編集
  1. ^ いまさら聞けないTDD/BDD超入門(1):テスト駆動開発/振る舞い駆動開発を始めるための基礎知識”. ITmedia. 2017年8月9日閲覧。
  2. ^ Behaviour-Driven Development”. 1 September 2015時点のオリジナルよりアーカイブ。12 August 2012閲覧。

関連項目

編集

外部リンク

編集
言語
C CSpec
Objective-C Kiwi
Swift, Objective-C Quick
Delphi dSpec
Go Ginkgo
Groovy easyb
GSpec
Haskell Hspec
Kotlin Spek
.NET NSpec
Specter
Java beanSpec
Instinct
JBehave
JDave
Tumbler
JavaScript JSSpec
PHP PHPSpec
Python PySpec
Ruby RSpec
Scala specs
XPath, XSLT, XQuery XSpec