TDDをやってみた
   川代 雄太
   @yutax77
http://mindtribe.com/wp-content/uploads/2011/04/TestDrivenDevelopmentForEmbeddedC-300x360.png


                                                                                    http://www.bookservice.jp/resource/cm_images/bs/0/20111126G065.jpg




                                                                                                                                             http://www.junkudo.co.jp/imagel/4798124583.jpg
                           http://www.seshop.com/static/images/product/4518/L.jpg
TDD
Test
Driven
Development
サイクルを回す
     テストを書く




              リファクタリ
実装
                ング
TDDが駆動する開発

詳細
     実装   UT
設計
振り返り




  http://cdn.mdjunction.com/components/com_joomlaboard/uploaded/images/soul18728_place_find_best_soul_searching_vacation.jpg
型に倣う
●   類似機能がないクラス
●   ユーティリティ
●   自信がないところ




                 farm1.staticflickr.com/11/11724073_6df0b78a3a_o_d.jpg
型から外れる
●   まず実装、その後テスト
●   類似機能があるクラス
    – XxxControllerなど

●   見通しが立っているクラス



                        farm8.staticflickr.com/7247/7780398146_a6644f3dc7_o_d.jpg
割り切りもある
●   他サーバーを立ち上
    げておく
●   In Memoryモードの
    DBの利用
35,000 : 37,000
src/main : src/test
時間・労力はかかる
●   書くコード量は約2倍
●   メンテ対象のコード量も約2倍
●   プロジェクト計画時に工数にお
    りこむ



                 http://officeimg.vo.msecnd.net/en-us/images/MH900430829.jpg
安心してコードを
変更できる
●   変更時もまずテストを書く
    – 不具合対応時は特にやるべき

●   コードが壊れていないことを祈ら
    なくてもよい



                http://photozou.jp/photo/photo_only/80348/12067921
テスタビリティを考慮
●   テストを書きやすいか?
●   テストは読みやすいか?
●   リファクタリングでよりよい実装に
●   「知識」が必要
設計は良くなる




    http://estock.s3.amazonaws.com/wwtfc1/26/80/18/estock_commonswiki_268018_o.png
TDDに必要なもの
      道具


 知識        気持
            ち
道具
●   テスティングフレームワーク
    –   JUnit
    –   Hamcrest(assertThat)
●   モックライブラリ
    –   Mockito
●   Eclipseプラグイン
    –   QuickJUnit
●   バージョン管理システム
    –   作業ブランチの活用
http://image.gihyo.co.jp/assets/files/book/2012/978-4-7741-5377-3/download/junitbook_cheatsheet.png
http://dl.dropbox.com/u/1393956/tdd_cheatsheet.png
知識
     クラス設計
     デザインパターン
     リファクタリング
     テスト技法
     ・・・
めげずに、
               気持ち
できることから少しずつ、
まずはやってみよう
TDD、やって
損なし!

TDDをやってみた