nseg第5回勉強会
TRANSCRIPT
![Page 1: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/1.jpg)
NSEG 第5回勉強会
にしざわこういち
2010/7/24 1 第5回 NSEG 勉強会
![Page 2: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/2.jpg)
自己紹介
• にしざわこういち(@koty)
• 市内の情報サービス会社勤務
• VB.NET C# ASP.NET
2010/7/24 2 第5回 NSEG 勉強会
![Page 3: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/3.jpg)
今回のお話は・・・・
2010/7/24 3 第5回 NSEG 勉強会
![Page 4: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/4.jpg)
テストコードを
書こう!
2010/7/24 第5回 NSEG 勉強会 4
![Page 5: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/5.jpg)
アジェンダ
• TDD BOOT CAMP NAGOYAの紹介
• テスト駆動開発とは
• 現実と戦う
• レガシーコード改善のデモ
・環境はVisual Studio 2010
・言語はVB.NET
2010/7/24 5 第5回 NSEG 勉強会
![Page 6: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/6.jpg)
TDD BOOT CAMP NAGOYA に行ってきました
• TDDBCってなに? – TDD(テスト駆動開発)を体感する合宿形式のセミナー – 詳しいことは↓ http://blogs.yahoo.co.jp/nagoya_agile_study_group/32506622.html
• 豪華な講師陣 – 和田卓人氏
• 日本のTDD先駆者
– ほか、GEEKな人たち • 名古屋は関数型言語 が盛ん?
• 次回は大阪で開催され るという話がちらほら
2010/7/24 第5回 NSEG 勉強会 6
http://www.flickr.com/photos/eitoball/4783013914/in/set-72157624469633828/
![Page 7: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/7.jpg)
TDDのサイクル
2010/7/24 第5回 NSEG 勉強会 7
テストを
書く
テストを
失敗させる
プロダク
ションコー
ドを書く
テストを
成功させる
リファクタ
リングする
テストを
成功させる
・動かない ・汚ない
・動く ・汚ない
・動く ・きれい
![Page 8: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/8.jpg)
• 仮実装でテストのテストをする
• その後三角測量用のテストコードでREDに
• その後プロダクションコードを修正してGREENに
• 不安をテストにする
• 詳しいことは和田氏のスライドを。。。
– http://www.slideshare.net/t_wada
TDDのコツ
2010/7/24 第5回 NSEG 勉強会 8
![Page 9: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/9.jpg)
しかーし
2010/7/24 第5回 NSEG 勉強会 9
![Page 10: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/10.jpg)
私たちが日々
相手にするのは
2010/7/24 第5回 NSEG 勉強会 10
![Page 11: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/11.jpg)
既に作られた
コード
2010/7/24 第5回 NSEG 勉強会 11
![Page 12: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/12.jpg)
5年モノや
10年モノ
2010/7/24 第5回 NSEG 勉強会 12
熟成されてます!
![Page 13: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/13.jpg)
TDD本体の話は またの 機会で。。
2010/7/24 第5回 NSEG 勉強会 13
![Page 14: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/14.jpg)
• テストが無いコードはレガシーコードだ!!
–何度も言います
• TDDBCの二日目にレガシーコード改善の体験があった
–今回、最も期待していたイベント
レガシーコード改善
2010/7/24 第5回 NSEG 勉強会 14
Goo辞書より
![Page 15: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/15.jpg)
レガシーコード改善のデモ
• windows formのイベントハンドラに書かれた業務ロジックをテストで保護する
• 今回の目標
–画面とロジックを分離する
–仕様化テストを書く
–多少の仕様変更を入れる(できれば)
2010/7/24 第5回 NSEG 勉強会 15
![Page 16: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/16.jpg)
仕様化テスト
• まずは仕様化テストを書く
• 仕様化テストとは・・・・命綱
–何が正しいか < どう動くか
– Assertのactual値をexpectedに書いていく
–その後の変更の支えとなる
2010/7/24 第5回 NSEG 勉強会 16
![Page 17: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/17.jpg)
先に結論
• 「仕様化テストを書ける状態」にするまでは、命綱(テストコード)無しで「気をつけて」やるしかない
• できれば複数人で
• IDEのリファクタリング機能が超重要
– Eclipse>>C#>>越えられない壁>>VB.NET orz
2010/7/24 第5回 NSEG 勉強会 17
![Page 18: nseg第5回勉強会](https://reader031.vdocuments.pub/reader031/viewer/2022020116/5578136cd8b42ab40c8b4805/html5/thumbnails/18.jpg)
おしまい
2010/7/24 第5回 NSEG 勉強会 18
To Be Continued ?...