Download - SeasarCon 2009 White TDD
![Page 1: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/1.jpg)
テスト駆動開発のこころ和田 卓人 (a.k.a id:t-wada)
Mar, 14 2009 @ SeasarCon White
![Page 2: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/2.jpg)
自己紹介
![Page 3: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/3.jpg)
自己紹介名前: 和田 卓人 (わだ たくと)
ブログ: http://d.hatena.ne.jp/t-wada
メール: [email protected]
Twitter: http://twitter.com/t_wada
タワーズ・クエスト株式会社 取締役社長
![Page 4: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/4.jpg)
これまで書いたものWEB + DB PRESSvol.35 「実演! テスト駆動開発」vol.37 「実演! リファクタリング」vol.42 「REST特集」vol.49 「DRY特集」LifeHacks PRESSオープンソースマガジン(リレーコラム)他いろいろ
![Page 5: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/5.jpg)
![Page 6: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/6.jpg)
gihyo.jpの連載『[動画で解説]和田卓人の“テスト駆動開発”講座』http://gihyo.jp/dev/serial/01/tdd/全20回すべて動画付き解説ニコニコ動画でも見れます
WEB+DB過去記事の特設サイトと動画も
![Page 7: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/7.jpg)
デベロッパーテスティング・ライブ - 自信を持ってコードを書くための心・技・体 -
【徹底討論】テストなんていらない?! -テストを、どこまでやるべきか?
パネルディスカッション:テストを行うこと、テストを続けること
デブサミ
![Page 8: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/8.jpg)
よろしくおねがいします
![Page 9: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/9.jpg)
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
![Page 10: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/10.jpg)
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
![Page 11: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/11.jpg)
TDDとは?
![Page 12: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/12.jpg)
TDDとは1. テストを書き2. そのテストを実行して失敗させ(Red)3. 目的のコードを書き4. 1で書いたテストを成功させ(Green)5. テストが通るままでリファクタリングを行う(Refactor)
6. 1~5を繰り返す
![Page 13: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/13.jpg)
テスト?
![Page 14: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/14.jpg)
テストの分類
DeveloperTesting
開発者
開発促進
CustomerTesting
顧客(のロール)
進捗管理
QATesting
品質保証担当者
(のロール)
品質保証
「テスト」
![Page 15: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/15.jpg)
Developer Testingとは
•プログラマの•プログラマによる•プログラマのための•プログラムとしてのテストを書きながら•開発を行っていく手法
![Page 16: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/16.jpg)
JUnitS2Unit
![Page 17: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/17.jpg)
DeveloperTestingの位置づけ
![Page 18: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/18.jpg)
バージョン管理テスティング
自動化
![Page 20: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/20.jpg)
バージョン管理テスティング
自動化
![Page 21: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/21.jpg)
バージョン絵巻物
![Page 22: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/22.jpg)
![Page 23: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/23.jpg)
バージョン管理テスティング
自動化
![Page 24: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/24.jpg)
素早いフィードバック
![Page 25: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/25.jpg)
バージョン管理テスティング
自動化
![Page 26: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/26.jpg)
自動化自働化
XFD
続きは Hudson セッションで
![Page 27: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/27.jpg)
目標は?
![Page 28: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/28.jpg)
動作する、きれいなコードへ
きれい
汚い
(すぐには)動かない 動作する
二つの道がある
![Page 29: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/29.jpg)
TDDのサイクル1. テストを書き2. そのテストを実行して失敗させ(Red)3. 目的のコードを書き4. 1で書いたテストを成功させ(Green)5. テストが通るままでリファクタリングを行う(Refactor)
6. 1~5を繰り返す
![Page 30: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/30.jpg)
きれい
汚い
(すぐには)動かない 動作する
Red
Green
Refactoring
TDDと黄金の回転
![Page 31: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/31.jpg)
TDDはテスト技法では
ない
![Page 32: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/32.jpg)
品質保証?品質向上?
![Page 33: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/33.jpg)
バグ発見とコスト
![Page 34: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/34.jpg)
TDDは設計技法です
![Page 35: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/35.jpg)
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
![Page 36: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/36.jpg)
TDDのこころ
![Page 37: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/37.jpg)
一つずつ少しずつ
![Page 38: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/38.jpg)
ひとりずつ対処する。
複数を相手にしない。
![Page 39: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/39.jpg)
動作する、きれいなコードへ
きれい
汚い
(すぐには)動かない 動作する
二つの道がある
![Page 40: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/40.jpg)
きれい
汚い
(すぐには)動かない 動作する
Red
Green
Refactoring
TDDと黄金の回転
![Page 41: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/41.jpg)
すばやくまわす
![Page 42: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/42.jpg)
REPLRead Eval Print Loop
![Page 43: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/43.jpg)
IDE + JUnit= Java の対話環境
![Page 44: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/44.jpg)
自分が最初のユーザ
![Page 45: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/45.jpg)
eat yourown
dog food
![Page 46: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/46.jpg)
不安をテストに
![Page 47: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/47.jpg)
勇気か蛮勇か
![Page 48: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/48.jpg)
脳をむだなく
![Page 49: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/49.jpg)
老人力ジャグリング
![Page 51: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/51.jpg)
IDE を使いこなせ
![Page 52: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/52.jpg)
EclipseNetBeans
続きは DBFlute セッションで
![Page 53: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/53.jpg)
テストは人の為ならず
![Page 54: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/54.jpg)
TDDのこころ•一つずつ、少しずつ•すばやくまわす•自分が最初のユーザ•不安をテストに•脳をむだなく•テストは人の為ならず
![Page 55: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/55.jpg)
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
![Page 56: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/56.jpg)
TDDはじめの一歩
![Page 57: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/57.jpg)
一人でも始められる
![Page 58: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/58.jpg)
読書
![Page 59: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/59.jpg)
![Page 60: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/60.jpg)
![Page 61: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/61.jpg)
写経
![Page 62: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/62.jpg)
![Page 63: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/63.jpg)
動画
![Page 64: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/64.jpg)
gihyo.jpの連載『[動画で解説]和田卓人の“テスト駆動開発”講座』http://gihyo.jp/dev/serial/01/tdd/全20回すべて動画付き解説ニコニコ動画でも見れます
WEB+DB過去記事の特設サイトと動画も
![Page 65: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/65.jpg)
小さく始める
![Page 66: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/66.jpg)
末端クラスから始める
![Page 67: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/67.jpg)
勉強会に行こう
![Page 68: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/68.jpg)
![Page 69: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/69.jpg)
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
![Page 70: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/70.jpg)
FAQ
![Page 71: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/71.jpg)
テストのないコードが沢山あるんだけど
![Page 72: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/72.jpg)
![Page 73: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/73.jpg)
テストしにくいところは?
![Page 74: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/74.jpg)
![Page 75: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/75.jpg)
どこをテストすべき?
![Page 76: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/76.jpg)
![Page 77: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/77.jpg)
デバッガじゃだめなの?
![Page 78: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/78.jpg)
![Page 79: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/79.jpg)
テストの単位
![Page 80: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/80.jpg)
1クラスファイルに1テストファイル?
![Page 81: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/81.jpg)
1メソッドに1テスト?
![Page 82: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/82.jpg)
リファクタリングに終わり無いんじゃ?
![Page 83: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/83.jpg)
カバレッジ100%の誤解
![Page 84: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/84.jpg)
まとめ
![Page 86: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/86.jpg)
TDDのこころ•一つずつ、少しずつ•すばやくまわす•自分が最初のユーザ•不安をテストに•脳をむだなく•テストは人の為ならず
![Page 87: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/87.jpg)
きれい
汚い
(すぐには)動かない 動作する
Red
Green
Refactoring
TDDと黄金の回転
![Page 88: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/88.jpg)
おわりに
![Page 89: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/89.jpg)
テストはスキルです• テストやTDDはスキルです。つまり…• 才能ではなく、習得可能です• 量は質に転化します• 写経!!
![Page 90: SeasarCon 2009 White TDD](https://reader035.vdocuments.site/reader035/viewer/2022081518/54812a20b4af9f324f8b4830/html5/thumbnails/90.jpg)
ご清聴ありがとうございました