[イベント] TDD 道場 第2回 @わんくま名古屋勉強会#12
昨日 (2010/3/13) 開催された 「わんくま同盟 名古屋勉強会 #12」 で、 TDD 道場をやりました。 前回の反省をふまえていくつか工夫してみたので、 少しはマシにできたかと思います。
ペアプロしてくれた方々、 また、 会場の参加者の方々、 どうもありがとうございました。
TDD 道場とは、 TDD をやってみることに主眼を置いたコーディング道場です。
今回、 説明に使ったスライドと開始時点のソースコードはこちらにあります。 ⇒ 勉強会などで使った資料: わんくま勉強会 名古屋#12
お題は、 VB 2008 Express Edition + NUnit 2.5 で 「郵便番号のバリデーション」 をやりました。 詳しくは、 上記のスライドをご覧ください。
当日の写真 (って、 私が喋ってるところで、 恥ずかしいのですが) が、 「りょーいち Blog」 に載ってます。
反省点は掲示板のほうに書きました。 ⇒ TDD.NET 掲示板: 「TDD 道場」 第2回への要望とか
掲示板にも書きましたけど、 今回の一番の収穫は、 「GREEN になると分かっているテストケースは書かないというルールも、 実際にそういうテストケースを書いてみると、 良く伝わる」 ということでした。
今回のお題では、 バリデーターに入ってくる文字列はすでにフィルタリングされていて、 数字と '-' (半角マイナス) しか入ってこないものとしました。 そのため、 設計しなければならないテストケースは少なくて済みます。 進行をスムースにするために事前に用意しておいたテストケースは次のとおり。 (注意: これらを全部やれば完璧とは限りません。)
| 入力 | 出力 | |
| 1 | String.Empty (空文字) ※作成済み | False |
| 2 | "12" (数字1~2桁) | False |
| 3 | "123" (数字3桁) | True |
| 4 | "1234" (数字4~6桁) | False |
| 5 | "1234567" (数字7桁) | True |
| 6 | "12345678" (数字8桁以上) | False |
| 7 | "123-4567" (数字3桁 + '-' + 数字4桁) | True |
登壇してくださったペアが選択したテストケースは、 その順序も含めて示すと次の通りでした。
- Test1_空文字_False
- Test6_8桁以上_False
- Test2_3桁_True
- Test5_7桁_True
- Test7_3桁_4桁_True
1番目は、 事前に準備として記述しておいたものです。 次からが、 TDD 道場で書いてもらったテストケースになります。
2番目は、 この時点で書いたのでは GREEN になってしまうテストケース。 実際に GREEN になってしまって製品コードを何も変更できないのを見た会場の参加者に、 納得したという表情が広がったように思いました。
テストケースの 3番と 4番は書きませんでしたが、 ここまでの 5つのテストケースだけで仕様を満たしたメソッドは完成しています。
ちなみに、 3桁 + 2桁 については、 仕様変更の分としてスライドの最終ページに用意してありましたが、 時間内には出来ませんでした。
35分間の枠の中で、 最初に私が 10分近く喋ったので、 実質 25分くらい。 それで 2ペア 4人に TDD を体験してもらうことができて、 時間には多少余裕がありました。 簡単なものであって事前にテストケースを提示しておくと、 壇上でしかも慣れない環境とキーボードを使う TDD 初心者であっても、 RED→GREEN を 5分程度で回せるということだと思います。 ただし、 リファクタリングはまったくやれませんでした。
勉強会終了後に、 お褒めの言葉を戴いたり、 自分たちの勉強会でもやってみたいとおっしゃって戴いたりしまして、 とても嬉しかったです。
| 固定リンク
「*イベント」カテゴリの記事
- [イベント] TDD 道場 第4回 @わんくま名古屋勉強会#14 ~ リファクタリングやってみよう! Step by Step(2010.08.22)
- [イベント] TDD ってゲームみたい! (c)mayonezudaiou ~ 名古屋アジャイル勉強会第22回 (4/24, 名古屋市)(2010.04.26)
- [イベント] 告知 - 名古屋アジャイル勉強会 「テスト駆動開発体験ワークショップ」 (4/24, 名古屋市)(2010.04.20)
- [イベント] 予告 - TDD Boot Camp 名古屋 7/10-11 (仮)(2010.04.20)
- [イベント] 有償セミナー告知: 5/18 和田卓人の 「TDD の基礎と実践」(2010.02.18)

コメント