2月14日にテスト駆動開発(TDD)ブートキャンプに参加しました。
バレンタインデーなのにデスクに居なかったので、義理チョコを損した感もありますが色々勉強になりました。自分なりの要約を少し載せたいと思います。
TDDとは
- TDDは開発者のおこうなうテスト。
- TDDの実装時間は20%くらい増えるが、欠陥は6割へる。
- 「テスト駆動開発」の「テスト」はといっても開発技法のとしてのテストです。いわゆるテスターがおこなうテストとは違います。あくまで開発者のためのテストです。
TDDの考え方
- 不安をテストにし、不安をなくせること。
- テストは書かないといけない、メンテンナンスしないといけない。だからテストはコストそのものです。
- 不安のないところにテストを書く必要がない。なぜならテストはコストだから。
- あくまで、デベロッパーとしてテストです。
- ソフトウェア工学的なメリットは色々有るのだが、自信を持つことができるというのは大きい。
- 変化に対応できるのは、健全なソースコードだけ。
1・テストを書く
2.そのテストを実行して失敗させる(なぜなら、機能を実装してないから) RED
3.目的のコードを書く(汚くても良い)
4.一度動作させ、成功させる。 GREEN
5.リファクタリングしコードをキレイにする
6.テストを成功させる。GREEN
6.テストを成功させる。GREEN
以下、5と6を繰り返す。
ブートキャン部での作業内容
CppUnitで、LRU Cacheのテストケースとプログラムを書いた。
それをみんなでレビュー。
あと最後にみんなで、フィードバック。
フィードバックのやりかたは、 KEEP, PROBLEM, TRY