java-ja tdd 2nd

112
回チキチキ 日本ペアプロ グラミングの会 java-ja支部会 和田 卓人 (a.k.a id:t-wada) Jun, 6 2009 @ java-ja 15th

Upload: takuto-wada

Post on 05-Dec-2014

2.741 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: java-ja TDD 2nd

第二回チキチキ日本ペアプログラミングの会java-ja支部会

和田 卓人 (a.k.a id:t-wada)

Jun, 6 2009 @ java-ja 15th

Page 2: java-ja TDD 2nd

第一回チキチキ日本ペアプログラミングの会java-ja支部会

Page 3: java-ja TDD 2nd

n分でわかる第一回チキ (ry

のまとめ

Page 4: java-ja TDD 2nd
Page 5: java-ja TDD 2nd
Page 6: java-ja TDD 2nd
Page 7: java-ja TDD 2nd

本当にありがとうございました

Page 8: java-ja TDD 2nd
Page 9: java-ja TDD 2nd

自己紹介

Page 10: java-ja TDD 2nd

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

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

メール: [email protected]

Twitter: http://twitter.com/t_wada

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

Page 11: java-ja TDD 2nd

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

Page 12: java-ja TDD 2nd

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

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

Page 13: java-ja TDD 2nd

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

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

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

デブサミ

Page 14: java-ja TDD 2nd

よろしくおねがいします

Page 15: java-ja TDD 2nd

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

Page 16: java-ja TDD 2nd

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

Page 17: java-ja TDD 2nd

TDDとは?

Page 18: java-ja TDD 2nd
Page 19: java-ja TDD 2nd

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

6. 1~5を繰り返す

Page 20: java-ja TDD 2nd

テスト?

Page 21: java-ja TDD 2nd

テストの分類

DeveloperTesting

開発者

開発促進

CustomerTesting

顧客(のロール)

進捗管理

QATesting

品質保証担当者

(のロール)

品質保証

「テスト」

Page 22: java-ja TDD 2nd

Developer Testingとは

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

Page 23: java-ja TDD 2nd

xUnit

Page 24: java-ja TDD 2nd

DeveloperTestingの位置づけ

Page 25: java-ja TDD 2nd

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

自動化

Page 26: java-ja TDD 2nd

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

Page 27: java-ja TDD 2nd

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

自動化

Page 28: java-ja TDD 2nd

バージョン絵巻物

Page 29: java-ja TDD 2nd
Page 30: java-ja TDD 2nd

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

自動化

Page 31: java-ja TDD 2nd

素早いフィードバック

Page 32: java-ja TDD 2nd

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

自動化

Page 33: java-ja TDD 2nd

自動化自働化

XFD

会場に詳しい人いるよ!!

Page 34: java-ja TDD 2nd

目標は?

Page 35: java-ja TDD 2nd

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

きれい

汚い

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

二つの道がある

Page 36: java-ja TDD 2nd

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

6. 1~5を繰り返す

Page 37: java-ja TDD 2nd

きれい

汚い

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

Red

Green

Refactoring

TDDと黄金の回転

Page 38: java-ja TDD 2nd
Page 39: java-ja TDD 2nd
Page 40: java-ja TDD 2nd

TDDはテスト技法では

ない

Page 41: java-ja TDD 2nd

品質保証?品質向上?

Page 42: java-ja TDD 2nd

バグ発見とコスト

Page 43: java-ja TDD 2nd

TDDは品質を

保証しない

Page 44: java-ja TDD 2nd

TDDは品質を向上する

Page 45: java-ja TDD 2nd

TDDは設計技法です

Page 46: java-ja TDD 2nd

TDDミクロの視点マクロの視点

Page 47: java-ja TDD 2nd

私たちが気付くのはいつ?

Page 48: java-ja TDD 2nd

計画する計画し続ける

Page 49: java-ja TDD 2nd

設計する設計し続ける

Page 50: java-ja TDD 2nd
Page 51: java-ja TDD 2nd

テストは目的ではなく手段

Page 52: java-ja TDD 2nd

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

Page 53: java-ja TDD 2nd

TDDのこころ

Page 54: java-ja TDD 2nd

一つずつ少しずつ

Page 55: java-ja TDD 2nd

ひとりずつ対処する。

複数を相手にしない。

Page 56: java-ja TDD 2nd

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

きれい

汚い

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

二つの道がある

Page 57: java-ja TDD 2nd

きれい

汚い

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

Red

Green

Refactoring

TDDと黄金の回転

Page 58: java-ja TDD 2nd

すばやくまわす

Page 59: java-ja TDD 2nd

REPLRead Eval Print Loop

Page 60: java-ja TDD 2nd

IDE + JUnit= Java の対話環境

Page 61: java-ja TDD 2nd

自分が最初のユーザ

Page 62: java-ja TDD 2nd

eat yourown

dog food

Page 63: java-ja TDD 2nd

不安をテストに

Page 64: java-ja TDD 2nd

勇気か蛮勇か

Page 65: java-ja TDD 2nd

脳をむだなく

Page 66: java-ja TDD 2nd

老人力ジャグリング

Page 67: java-ja TDD 2nd

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

Page 68: java-ja TDD 2nd

IDE を使いこなせ

Page 69: java-ja TDD 2nd

EclipseNetBeans

Page 70: java-ja TDD 2nd

テストは人の為ならず

Page 71: java-ja TDD 2nd

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

Page 72: java-ja TDD 2nd

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

Page 73: java-ja TDD 2nd

TDDはじめの一歩

Page 74: java-ja TDD 2nd

一人でも始められる

Page 75: java-ja TDD 2nd

読書

Page 76: java-ja TDD 2nd
Page 77: java-ja TDD 2nd
Page 78: java-ja TDD 2nd

写経

Page 79: java-ja TDD 2nd
Page 80: java-ja TDD 2nd

動画

Page 81: java-ja TDD 2nd

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

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

Page 82: java-ja TDD 2nd

小さく始める

Page 83: java-ja TDD 2nd

末端クラスから始める

Page 84: java-ja TDD 2nd

勉強会に行こう

Page 85: java-ja TDD 2nd
Page 86: java-ja TDD 2nd

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

Page 87: java-ja TDD 2nd

FAQ

Page 88: java-ja TDD 2nd

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

Page 89: java-ja TDD 2nd
Page 90: java-ja TDD 2nd

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

Page 91: java-ja TDD 2nd
Page 92: java-ja TDD 2nd

どこをテストすべき?

Page 93: java-ja TDD 2nd
Page 94: java-ja TDD 2nd

デバッガじゃだめなの?

Page 95: java-ja TDD 2nd
Page 96: java-ja TDD 2nd

テストの単位

Page 97: java-ja TDD 2nd

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

Page 98: java-ja TDD 2nd

1メソッドに1テスト?

Page 99: java-ja TDD 2nd

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

Page 100: java-ja TDD 2nd

カバレッジ100%の誤解

Page 101: java-ja TDD 2nd

まとめ

Page 102: java-ja TDD 2nd

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

Page 103: java-ja TDD 2nd

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

Page 104: java-ja TDD 2nd

きれい

汚い

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

Red

Green

Refactoring

TDDと黄金の回転

Page 105: java-ja TDD 2nd

デモ

Page 106: java-ja TDD 2nd

Eclipse Galileo RC2

Quick-JUnit 0.5 beta

JUnitMax

Page 107: java-ja TDD 2nd

TDDの基本テクニック• テストファースト• アサートファースト

• 仮実装(Fake it)• Fake it はテストのテスト

• 三角測量(Triangulation)• 明白な実装(Obvious Implementation)

Page 108: java-ja TDD 2nd

Design for Testability

• テストしやすいコードを書くためには?• テストから先に書く => テスト可能になる• テストを考える = 設計を考える

Page 109: java-ja TDD 2nd

Refactoring

• 呼吸をするようにリファクタリングする• Rename (改名)• Extract (抽出)• Inline (インライン化)

Page 110: java-ja TDD 2nd

おわりに

Page 111: java-ja TDD 2nd

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

Page 112: java-ja TDD 2nd

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