2011年11月5日土曜日

TDDBC横浜に参加しました。



久しぶりに書いてみます。

TDDBC横浜
http://devtesting.jp/tddbc/?TDDBC%E6%A8%AA%E6%B5%9C

TDDという言葉に初めて触れたのはSeasarConでした。
その時は開発手法としてそういった方法もあるのだという程度でした。
それからはTDDがどんなものであるか概念としては知っていたものの、作法や実践は全く知らない状態でした。

そこで今回、BootCampということで実践の機会に恵まれました。
学んだことなどは、今後写経して振り返りながら書くとして、まとめると大変勉強になり収穫の多い体験でした。

主に以下の点についてが特に印象的でした。
・ローカルレポジトリの有用性。
・TestContextによるテストケースの分割
・利用者視点からみたテストシナリオ

まず、ローカルレポジトリについては、セントラルレポジトリと切り離されていることにより、コミットによる影響範囲が自分だけにとどまること。

次に、JenkinsのようなCIツールとの連携する際、フィードバックが得やすい。

以上の点がTDDを実施する上で自分自身のギアをコントロールし易くなるのかなと。

特に目からウロコだったのは、「テストケースを分割したいが、出来ればひとつのクラスに対してひとつのテストファイルに収めたいという場合」。

内部クラスにそれぞれのテストケースを割り当てていくことが適しており、割り当てる場合データのパターン毎だとテストを追加する際、網羅し易くなる。

テスト用のメソッド名やクラス名に日本語を利用するとJUnitで確認する際にわかりやすいことも、初めて知った。

また、テストシナリオを用意する際に、privateな箇所までテストを目的にしてしまうとテストが脆くなってしまうので、

境界を意識して用意するとゴールの目的が明確になり、テストをし易くなる。

自分自身成長するための武器としてTDDをどうやって活用していくのか、今日学んだことを忘れないように写経を始めたいと思います。

TDDBC横浜のスタッフの皆様、そして参加された皆様、ありがとうございました。