第22回名古屋アジャイル勉強会

4/24に、第22回 名古屋アジャイル勉強会に参加してきました。

今回は、「テスト駆動開発体験ワークショップ」。

  • ワークショップ

自分は環境持ってなかったけど、C#がやってみたかったのでC#組に参加。
id:bleis-tift と、biacさんと。

環境は bleis の VS 2008 で。
内容は、自分が何となく選んだ素数列をやることに。


まずはプロジェクトの作り方から。

    • 作成
      • クラスライブラリ
    • csファイルを削除
    • プロジェクトを追加 (テスト用)
      • 名前は、「〜Project.Test」とか
      • 参照設定から、以下を追加
        • NUnit、プロダクトプロジェクト、他必要なライブラリ
    • アセンブラの設定?名前と可視設定。


で、テストから作っていく。

    • テストクラス作る
      • テストクラスにTestFixture属性、テストメソッドにTest属性
      • テストメソッドにTestCase属性で、パラメタライズドテストできる!


んで、テスト通るように組んでいく。
2008では、IDEに「作成よろ〜」って出来ない部分もあったり。

実装は、2から指定要素までのリスト作って、filterした。C#では、Where使う。
filterの部分は素数判定。一発で出来なかったから、メソッドに抽出。
抽出した部分の実装の前に、テストを書く。
あと、大元のテストで通らなかったやつに Explicit 付けておく。
素数判定部が1の時うまくいってなかった。1の時分岐させる。最初にうまくいかなかったのはこいつのせい。
素数判定のテストがうまくいったから、Explicit外す。テスト通ってる。
完成。わーい。


そういえば for 文とかありましたねぇ・・・使わなかったけど。

  • 使ってみた話

実際に使ってみると、開発工数は2〜3割増くらいになるけど、その分結合テストの(バグ対応の)工数が半分になったりするみたい。
TDDすごい。

  • その他

しるこサンド復活。

  • 懇親会

TDDBC名古屋の話とか。
とりあえず場所を決めようって話。