TDD,BDD,SDD,ATDDの話題

TDD,BDD,SDD,ATDDの話題
9
中村 薫 @kaorun55

あー、JavaとかC++とかCでBDDのフレームワークってある?

2010-01-27 14:31:43
hikaru world @hikaruworld

@kaorun55 Javaならeasybってのがあります。一度試してみたいとおもいつつ、まだ試したことがないですが。

2010-01-27 14:36:22
hikaru world @hikaruworld

そういえばTDDは良く聞くようになったけど、BDDやSDDを意識してやってるのはまわりではあんまり聞かないなぁ。詳しい人がいるなら情報交換したい .

2010-01-27 14:46:01
中村 薫 @kaorun55

@hikaruworld SDDって初めて聞きました。何の略ですか??RubyだとRSpecをよく聞くのでBDDが割と浸透してるのかな?って思ったりします。

2010-01-27 14:49:38
hikaru world @hikaruworld

@kaorun55 ストーリーテスト駆動開発(Story-Test-Driven-Development)のことですね。ストーリー単位でテストを作成して開発を行う手法らしいのですがあんまり情報がなく。 http://bit.ly/9kDaoI

2010-01-27 14:59:33
Ryutaro YOSHIBA @ryuzee

そんな感じで開発してますよー RT @hikaruworld: @kaorun55 ストーリーテスト駆動開発(Story-Test-Driven-Development)のことですね。ストーリー単位でテストを作成して開発を行う手法

2010-01-27 15:01:24
Takuto Wada @t_wada

@hikaruworld ストーリー毎に受け入れテストを作成して駆動させるという、従来からある手法に見えます。例えば Ruby では Cucumber を使うような手法ですね。 ATDD と呼んでいる人もいると思います。

2010-01-27 15:05:20
中村 薫 @kaorun55

@hikaruworld ありがとうございます。ストーリーテスト駆動開発ですか メモメモ。粒度としてはTDDやBDDよりも大きめになる感じですか? http://bit.ly/9kDaoI

2010-01-27 15:13:05
中村 薫 @kaorun55

@t_wada ATDDも初めて聞きました。この受け入れテスト駆動開発のことですか? http://gihyo.jp/dev/serial/01/agile-transparency/0005

2010-01-27 15:15:50
Takuto Wada @t_wada

@kaorun55 たぶんそうですね。名前にこだわらず皆やっていることなのではないかと思うのです。

2010-01-27 15:19:00
hikaru world @hikaruworld

@kaorun55 @t_wada 自分的には提示されたストーリに対応する受け入れテストを書いて→仕様にあわせたテスト(BDD)を書く→単体/コンポーネントレベルの実装をTDDで行うというイメージです。スコープを意識してわけておくと適切な粒度でテストがかけるのではないかなと

2010-01-27 15:21:06
Takuto Wada @t_wada

@hikaruworld 私個人の意見としては、テストを粒度で分けるのは混乱の元凶なので、「だれが、なんのために」で分けるのが良いと考えています。

2010-01-27 15:24:18
中村 薫 @kaorun55

@t_wada ありがとうございます。Seleniumを使ったUIテストなんかだとこの考え方になるのでしょうか。

2010-01-27 15:25:15
中村 薫 @kaorun55

@hikaruworld なるほど、分かりやすいです。

2010-01-27 15:26:05
Takuto Wada @t_wada

@kaorun55 いや、手法より目的が大事なんです。

2010-01-27 15:28:26
Takuto Wada @t_wada

@kaorun55 あと、 Selenium で受け入れテストを作るのは比較的難しいですよね。回帰テストには向いていますが、受け入れテスト(先に書く)には向いていないのではないかなと思います。

2010-01-27 15:32:52
中村 薫 @kaorun55

.@t_wada 「だれが、なんのために」ということですね。ユーザーストーリーの考え方と同じなので、ちょっともやもやしてますが納得です。

2010-01-27 15:33:01
中村 薫 @kaorun55

@t_wada なるほど。手法と前提の話になってしまうかもしれませんが、先に書くTDDの要素ということはATDDは受け入れテストの自動化の話ということでよいですか。

2010-01-27 15:42:16
Takuto Wada @t_wada

@kaorun55 はい、 ATDD (と、たぶん SDD というやつも) は、自動化された(受け入れ)テストをストーリの進捗判断に使いプロジェクトを駆動するものだろうと考えています。

2010-01-27 15:51:32
hikaru world @hikaruworld

@t_wada なんとなく理解できるのですが、よければ例を示してもらってもいいでしょうか。誰が何のためにそのテストを必要とするかで考えてスコープ単位で考えて作るのかなぁとぼんやり思っていました。

2010-01-27 15:51:39
Kazunori Otani @katzchang

妄想だけど、受け入れテストを先に書くということは、seleniumを記述するのではなく、ストーリーを実現する抽象的なインタフェースを書いて挙動を検査する的なものになるんじゃないかなとか。抽象インタフェースとUI操作をつなぐ何かは後でかかなならん。

2010-01-27 15:55:59
Takuto Wada @t_wada

@hikaruworld 説明が凄く足りなかったです…反論しているのではないのです。スコープや粒度を考えるのは大事です。ただそれらに名前を付けて議論すると個々人の認識/経験/感覚で議論がズレまくるという歴史をくりかえしてきたので、粒度毎のテストで名前を分ける効果を疑問視してます。

2010-01-27 15:56:30
中村 薫 @kaorun55

.@t_wada ありがとうございます。ここまでは理解できました^^; 実際にどうやってるのかというイメージはできてませんけど。。。 この辺りは @Ryuzee さんが詳しいのかな?

2010-01-27 15:58:49
Masayoshi Nakamura @masayang

最近はFitnessって使われてないのかな? RT @katzchang: 妄想だけど、受け入れテストを先に書くということは、seleniumを記述するのではなく、ストーリーを実現する抽象的なインタフェースを書いて挙動を検査する的なものになるんじゃないかなとか。

2010-01-27 15:59:11
Kazunori Otani @katzchang

@masayang http://fitnesse.org/ ですか。あんまり聞きませんね・・・。

2010-01-27 16:01:35