2012年4月25日水曜日

TDD(テスト駆動開発)ブートキャンプに参加しました。

公開し忘れていたので、2ヶ月くらい立ちましたが公開します。

2月14日にテスト駆動開発(TDD)ブートキャンプに参加しました。
バレンタインデーなのにデスクに居なかったので、義理チョコを損した感もありますが色々勉強になりました。自分なりの要約を少し載せたいと思います。


TDDとは
  •  TDDは開発者のおこうなうテスト。
  •  TDDの実装時間は20%くらい増えるが、欠陥は6割へる。
  •  「テスト駆動開発」の「テスト」はといっても開発技法のとしてのテストです。いわゆるテスターがおこなうテストとは違います。あくまで開発者のためのテストです。
TDDの考え方
  • 不安をテストにし、不安をなくせること。
  • テストは書かないといけない、メンテンナンスしないといけない。だからテストはコストそのものです。
  • 不安のないところにテストを書く必要がない。なぜならテストはコストだから。 
  • あくまで、デベロッパーとしてテストです。 
  • ソフトウェア工学的なメリットは色々有るのだが、自信を持つことができるというのは大きい。 
  • 変化に対応できるのは、健全なソースコードだけ。
具体的なやり方

1・テストを書く
2.そのテストを実行して失敗させる(なぜなら、機能を実装してないから) RED
3.目的のコードを書く(汚くても良い)
4.一度動作させ、成功させる。 GREEN
5.リファクタリングしコードをキレイにする
6.テストを成功させる。GREEN
以下、5と6を繰り返す。
 

ブートキャン部での作業内容
CppUnitで、LRU Cacheのテストケースとプログラムを書いた。
それをみんなでレビュー。
あと最後にみんなで、フィードバック。
フィードバックのやりかたは、 KEEP, PROBLEM, TRY