« [コラム] TDDBC 東京 1.6 のお題を C# でやってみる (その3) ~ 2つめ、3つめの仕様変更[T16MAIN-6,7] | トップページ | [コラム] NUnit の CollectionAssert で、 配列やリストを比較・検証する »

2011年10月31日 (月)

[イベント] TDD 道場 ~場外乱闘編~ (2011/10/29)

20111029_wankuma_tdd01 10月29日に開催された わんくま名古屋勉強会#19 では、 いつもの TDD 道場の後に 「TDD 道場 ~場外乱闘編~」と題して、会場の人にも参加していただいてディスカッションを行いました。
※ 予告とネタの募集は、 掲示板に。 ⇒ http://tdd-net.bbs.coocan.jp/?m=listthread&t_id=23

TDD の実践にはいろいろな流儀があります。 それらについて、 私と @guicheng さんが対立する立場からの討論を行い、 会場の皆さんにもその議論に参加してもらうという趣向です。 用意しておいた 9つのお題の中から、 5つ話し合うことができました。
※ スライド資料は、 「勉強会などで使った資料」 のページからどうぞ。

  1. 20111029_wankuma_tdd02 リファクタリングのタイミングは、RED→GREENの都度? vs 一段落ついてから?
  2. 実装のスケルトンは、自動生成? vs 先に手書き?
  3. 最初のテストケースは、メインルート? vs ガード句?
  4. テストケースを書いたとき、そのREDの確認は、全テスト? vs そのテストケースだけ?
  5. テストケースを書かずに Enum の 0 を定義しちゃう? vs しない?
  6. 似たテストケースを書くのにコピペは、OK? vs NG?
  7. 子メソッドが必要だと気付いた時、今やってるテストケースは、コメントアウト? vs ignore(Explicit)属性?
  8. 自動実装プロパティをテストする? or しない?
  9. 状態を持っているシングルトンオブジェクトは?

りょーいち Blog: [写真]biacさん & guichengさんのTDD道場 わんくまのセッションは、 いつも ust で生中継  しているのですが、 会場の人にも発言してもらう都合上、 音声無しでの中継となりました。 ( 参加者に、 放映されることに同意を求めるわけにはいきませんので。 )
そこで、 議論の要点を、 勉強会のディレクターを務めた @you_and_i さんに記録していただきました。 これを読んで多少なりとも雰囲気を掴んでいただければと思います。 (左の写真は、「りょーいち Blog」より。)

(以下、 @you_and_i さんによるメモ)


20111029_wankuma_tdd03 ◆ お題1: リファクタリングのタイミング

RED/GREENの都度
→黄金の三角形
 リファクタリングの機会を逃すので、
 帽子の向きを変えるイメージ

必要になった時にやればよい
→帽子をかぶり直すイメージ

◆ お題7: 一時的に不要になったテスト

コメントアウト
→その都度やり方を変えながらやっている

テストコードにignore(Explicit)属性を付与
→テストケースを考えるとこちらが便利。

テストコードについては上記の通り
ただ、実装コードについては、臨機応変に対応。

◆ お題2: 実装のスケルトン作成

テストコードから自動生成
→テストコードはそのテスト対象の利用例となるので、
 使い勝手を先に考慮してI/Fが作成される。

テストコードよりも先に手書きで作成
→作る側の都合で引数等のI/Fを考えながら作成する。
 使い勝手が考慮されない場合もある。

◆ お題2: 最初のテストケース

メインルートから作る
→4名
 条件分岐にこだわりすぎて、いつまでたってもメインルートの処理が記述出来ないのでは?

ガード句に相当するところから作る
→6名
 引数チェック等はこちらになる。
 脇道をつぶしてから、メインルートに取り組む

◆ お題8: 自動実装プロパティ

自動実装プロパティをテストする
→最初にテストをするのは仕様を固定化する意味合いもある。デグレートを防げる。

テストしない
→自動生成されたコードは信頼していいじゃないか。


アンケートで寄せていただいた意見を読ませていただいたところ、 けっこう好評なようでした。 機会があれば、 またやらせていただこうと思います。

|

« [コラム] TDDBC 東京 1.6 のお題を C# でやってみる (その3) ~ 2つめ、3つめの仕様変更[T16MAIN-6,7] | トップページ | [コラム] NUnit の CollectionAssert で、 配列やリストを比較・検証する »

*イベント」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/53128181

この記事へのトラックバック一覧です: [イベント] TDD 道場 ~場外乱闘編~ (2011/10/29):

« [コラム] TDDBC 東京 1.6 のお題を C# でやってみる (その3) ~ 2つめ、3つめの仕様変更[T16MAIN-6,7] | トップページ | [コラム] NUnit の CollectionAssert で、 配列やリストを比較・検証する »