seasarcon 2009 white tdd

90
テスト駆動開発の こころ 和田 卓人 (a.k.a id:t-wada) Mar, 14 2009 @ SeasarCon White

Upload: takuto-wada

Post on 04-Dec-2014

3.287 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: SeasarCon 2009 White TDD

テスト駆動開発のこころ和田 卓人 (a.k.a id:t-wada)

Mar, 14 2009 @ SeasarCon White

Page 2: SeasarCon 2009 White TDD

自己紹介

Page 3: SeasarCon 2009 White TDD

自己紹介名前: 和田 卓人 (わだ たくと)

ブログ: http://d.hatena.ne.jp/t-wada

メール: [email protected]

Twitter: http://twitter.com/t_wada

タワーズ・クエスト株式会社 取締役社長

Page 4: SeasarCon 2009 White TDD

これまで書いたものWEB + DB PRESSvol.35 「実演! テスト駆動開発」vol.37 「実演! リファクタリング」vol.42 「REST特集」vol.49 「DRY特集」LifeHacks PRESSオープンソースマガジン(リレーコラム)他いろいろ

Page 5: SeasarCon 2009 White TDD
Page 6: SeasarCon 2009 White TDD

gihyo.jpの連載『[動画で解説]和田卓人の“テスト駆動開発”講座』http://gihyo.jp/dev/serial/01/tdd/全20回すべて動画付き解説ニコニコ動画でも見れます

WEB+DB過去記事の特設サイトと動画も

Page 7: SeasarCon 2009 White TDD

デベロッパーテスティング・ライブ - 自信を持ってコードを書くための心・技・体 -

【徹底討論】テストなんていらない?! -テストを、どこまでやるべきか?

パネルディスカッション:テストを行うこと、テストを続けること

デブサミ

Page 8: SeasarCon 2009 White TDD

よろしくおねがいします

Page 9: SeasarCon 2009 White TDD

Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ

Page 10: SeasarCon 2009 White TDD

Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ

Page 11: SeasarCon 2009 White TDD

TDDとは?

Page 12: SeasarCon 2009 White TDD

TDDとは1. テストを書き2. そのテストを実行して失敗させ(Red)3. 目的のコードを書き4. 1で書いたテストを成功させ(Green)5. テストが通るままでリファクタリングを行う(Refactor)

6. 1~5を繰り返す

Page 13: SeasarCon 2009 White TDD

テスト?

Page 14: SeasarCon 2009 White TDD

テストの分類

DeveloperTesting

開発者

開発促進

CustomerTesting

顧客(のロール)

進捗管理

QATesting

品質保証担当者

(のロール)

品質保証

「テスト」

Page 15: SeasarCon 2009 White TDD

Developer Testingとは

•プログラマの•プログラマによる•プログラマのための•プログラムとしてのテストを書きながら•開発を行っていく手法

Page 16: SeasarCon 2009 White TDD

JUnitS2Unit

Page 17: SeasarCon 2009 White TDD

DeveloperTestingの位置づけ

Page 18: SeasarCon 2009 White TDD

バージョン管理テスティング

自動化

Page 19: SeasarCon 2009 White TDD

三本柱©Artek ( http://www.artek.fi/ )

Page 20: SeasarCon 2009 White TDD

バージョン管理テスティング

自動化

Page 21: SeasarCon 2009 White TDD

バージョン絵巻物

Page 22: SeasarCon 2009 White TDD
Page 23: SeasarCon 2009 White TDD

バージョン管理テスティング

自動化

Page 24: SeasarCon 2009 White TDD

素早いフィードバック

Page 25: SeasarCon 2009 White TDD

バージョン管理テスティング

自動化

Page 26: SeasarCon 2009 White TDD

自動化自働化

XFD

続きは Hudson セッションで

Page 27: SeasarCon 2009 White TDD

目標は?

Page 28: SeasarCon 2009 White TDD

動作する、きれいなコードへ

きれい

汚い

(すぐには)動かない 動作する

二つの道がある

Page 29: SeasarCon 2009 White TDD

TDDのサイクル1. テストを書き2. そのテストを実行して失敗させ(Red)3. 目的のコードを書き4. 1で書いたテストを成功させ(Green)5. テストが通るままでリファクタリングを行う(Refactor)

6. 1~5を繰り返す

Page 30: SeasarCon 2009 White TDD

きれい

汚い

(すぐには)動かない 動作する

Red

Green

Refactoring

TDDと黄金の回転

Page 31: SeasarCon 2009 White TDD

TDDはテスト技法では

ない

Page 32: SeasarCon 2009 White TDD

品質保証?品質向上?

Page 33: SeasarCon 2009 White TDD

バグ発見とコスト

Page 34: SeasarCon 2009 White TDD

TDDは設計技法です

Page 35: SeasarCon 2009 White TDD

Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ

Page 36: SeasarCon 2009 White TDD

TDDのこころ

Page 37: SeasarCon 2009 White TDD

一つずつ少しずつ

Page 38: SeasarCon 2009 White TDD

ひとりずつ対処する。

複数を相手にしない。

Page 39: SeasarCon 2009 White TDD

動作する、きれいなコードへ

きれい

汚い

(すぐには)動かない 動作する

二つの道がある

Page 40: SeasarCon 2009 White TDD

きれい

汚い

(すぐには)動かない 動作する

Red

Green

Refactoring

TDDと黄金の回転

Page 41: SeasarCon 2009 White TDD

すばやくまわす

Page 42: SeasarCon 2009 White TDD

REPLRead Eval Print Loop

Page 43: SeasarCon 2009 White TDD

IDE + JUnit= Java の対話環境

Page 44: SeasarCon 2009 White TDD

自分が最初のユーザ

Page 45: SeasarCon 2009 White TDD

eat yourown

dog food

Page 46: SeasarCon 2009 White TDD

不安をテストに

Page 47: SeasarCon 2009 White TDD

勇気か蛮勇か

Page 48: SeasarCon 2009 White TDD

脳をむだなく

Page 49: SeasarCon 2009 White TDD

老人力ジャグリング

Page 50: SeasarCon 2009 White TDD

三本柱©Artek ( http://www.artek.fi/ )

Page 51: SeasarCon 2009 White TDD

IDE を使いこなせ

Page 52: SeasarCon 2009 White TDD

EclipseNetBeans

続きは DBFlute セッションで

Page 53: SeasarCon 2009 White TDD

テストは人の為ならず

Page 54: SeasarCon 2009 White TDD

TDDのこころ•一つずつ、少しずつ•すばやくまわす•自分が最初のユーザ•不安をテストに•脳をむだなく•テストは人の為ならず

Page 55: SeasarCon 2009 White TDD

Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ

Page 56: SeasarCon 2009 White TDD

TDDはじめの一歩

Page 57: SeasarCon 2009 White TDD

一人でも始められる

Page 58: SeasarCon 2009 White TDD

読書

Page 59: SeasarCon 2009 White TDD
Page 60: SeasarCon 2009 White TDD
Page 61: SeasarCon 2009 White TDD

写経

Page 62: SeasarCon 2009 White TDD
Page 63: SeasarCon 2009 White TDD

動画

Page 64: SeasarCon 2009 White TDD

gihyo.jpの連載『[動画で解説]和田卓人の“テスト駆動開発”講座』http://gihyo.jp/dev/serial/01/tdd/全20回すべて動画付き解説ニコニコ動画でも見れます

WEB+DB過去記事の特設サイトと動画も

Page 65: SeasarCon 2009 White TDD

小さく始める

Page 66: SeasarCon 2009 White TDD

末端クラスから始める

Page 67: SeasarCon 2009 White TDD

勉強会に行こう

Page 68: SeasarCon 2009 White TDD
Page 69: SeasarCon 2009 White TDD

Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ

Page 70: SeasarCon 2009 White TDD

FAQ

Page 71: SeasarCon 2009 White TDD

テストのないコードが沢山あるんだけど

Page 72: SeasarCon 2009 White TDD
Page 73: SeasarCon 2009 White TDD

テストしにくいところは?

Page 74: SeasarCon 2009 White TDD
Page 75: SeasarCon 2009 White TDD

どこをテストすべき?

Page 76: SeasarCon 2009 White TDD
Page 77: SeasarCon 2009 White TDD

デバッガじゃだめなの?

Page 78: SeasarCon 2009 White TDD
Page 79: SeasarCon 2009 White TDD

テストの単位

Page 80: SeasarCon 2009 White TDD

1クラスファイルに1テストファイル?

Page 81: SeasarCon 2009 White TDD

1メソッドに1テスト?

Page 82: SeasarCon 2009 White TDD

リファクタリングに終わり無いんじゃ?

Page 83: SeasarCon 2009 White TDD

カバレッジ100%の誤解

Page 84: SeasarCon 2009 White TDD

まとめ

Page 85: SeasarCon 2009 White TDD

三本柱©Artek ( http://www.artek.fi/ )

Page 86: SeasarCon 2009 White TDD

TDDのこころ•一つずつ、少しずつ•すばやくまわす•自分が最初のユーザ•不安をテストに•脳をむだなく•テストは人の為ならず

Page 87: SeasarCon 2009 White TDD

きれい

汚い

(すぐには)動かない 動作する

Red

Green

Refactoring

TDDと黄金の回転

Page 88: SeasarCon 2009 White TDD

おわりに

Page 89: SeasarCon 2009 White TDD

テストはスキルです• テストやTDDはスキルです。つまり…• 才能ではなく、習得可能です• 量は質に転化します• 写経!!

Page 90: SeasarCon 2009 White TDD

ご清聴ありがとうございました