アジャイルに行こう!

BDD = Behavior Driven Development - テストの視点から仕様の視点へ

»

以前のブログで、テストをデザインの手段として捉える、TDD(Test Driven Development)の発展として、BDD(Behavior Driven Development)について紹介した。要は、テストにまつわるボキャブラリから、仕様周辺のボキャブラリに変更することから生まれる、新しい開発の捉え方だ。例えば、Stackが生成時に空であるという仕様を、こう表現する。

shouldBeEmpty() {
  Stack stack = new Stack();
  Verify.that(stack.isEmpty);

}

以前の、test, assert というボキャブラリではなく、should, verify というボキャブラリへの転向。

このBDDの本に関する、先行和訳の試みを、懸田さんが始めた!http://log.giantech.jp/BDDIntro-ja.html

要チェック!

grim さんのブログ:
http://tcgrim.blogspot.com/2005/12/jbehave.html

Comment(3)

コメント

JBehave0.5.0でVerifyクラスが推奨されなくなってEnsureを使えとなってました。
これもテスト記述からより仕様記述へ向かう修正なのでしょうか。

平鍋

grimさん、確かに、Ensureの方がよさそうな名前かもしれません。Eiffel の事後条件を思い出します。

もり

テストを書く事は仕様を書く事に他ならない、だから仕様記述のボキャブラリを用いるべき、という事ですね。
なるほど、「実行可能なテストケース」より「実行可能な仕様書」の方が何倍も価値がある。
ただ、BDDで気になるのは「仕様(spec)」ではなくわざわざ「振舞い(behaviour)」に限定している事です。
構造的な仕様だって同じように記述できるはずだし、それを(暗に)否定すべきではないと思う。
BDDではなくSDD(Spec Driven Development)とでもした方がより適切なのでは、と感じました。

コメントを投稿する