読者です 読者をやめる 読者になる 読者になる

『JUnit実践入門』写経・実践会 in 横浜 #5 に参加しました

『JUnit実践入門』写経・実践会 in 横浜 #5 - connpass
2013/04/14 『JUnit実践入門』写経・実践会 in 横浜 #5 #junitbook - Togetterまとめ

タネマキさんへ来るのは 1 ヶ月ぶり、この勉強会には 2 ヶ月ぶりの参加でした。

やったこと

ディスカッションしながら考えたこと

  • BDD の意義
    • 動作する仕様
      • 受け入れテストに使える?
    • 開発者とユーザの対話を促す
      • 記述にある程度の制約を課すことによってフリーフォーマットな自然言語よりも要件を明確化できているように見える
  • TDDとBDDの違い
    • TDDにBDDを含むか
    • 『実践テスト駆動開発』では区別していない
      • 内側/外側という表現はしている
    • BDD にも複数の意味がある

現時点の理解では、積極的に区別する理由が思い付きませんでした。あえて区別するなら抽象度の違いかなあ。

自然言語的に仕様記述で、かつ、動作させることができるフレームワークが BDD フレームワークと言えるのかな?
そうだとするなら、この中では Cucumber のみが BDD フレームワークで、残りは汎用的な TDD フレームワーク
もうちょい消化したいところ。

ディスカッションの中で、他にも気になったことがありました。
こちらについては別途調べて考察してみるつもりです。

  • ユーザーストーリーと BDD
  • それぞれの仕様記述フレームワークとしての役割
  • Done の定義 = ユーザーストーリー = 仕様?

その他

  • 噂のあやぴー (@ayato_p) さんに初遭遇!
  • 最近 OCaml やっているので文字列連結に ^ 使ってエラーになって??ってなった
  • オブジェクト指向入門』読んで感じた違和感にせとさんからヒントもらった

色々考えるネタを仕入れることができたし、久々に Groovy 触れたし楽しかったです。
@shinyaa31 さん、参加された皆さん、ありがとうございました!

*1:前述のように BDD という表現はしていないが