java-ja tdd 2nd
DESCRIPTION
TRANSCRIPT
第二回チキチキ日本ペアプログラミングの会java-ja支部会
和田 卓人 (a.k.a id:t-wada)
Jun, 6 2009 @ java-ja 15th
第一回チキチキ日本ペアプログラミングの会java-ja支部会
n分でわかる第一回チキ (ry
のまとめ
本当にありがとうございました
自己紹介
自己紹介名前: 和田 卓人 (わだ たくと)
ブログ: http://d.hatena.ne.jp/t-wada
メール: [email protected]
Twitter: http://twitter.com/t_wada
タワーズ・クエスト株式会社 取締役社長
これまで書いたものWEB + DB PRESSvol.35 「実演! テスト駆動開発」vol.37 「実演! リファクタリング」vol.42 「REST特集」vol.49 「DRY特集」LifeHacks PRESSオープンソースマガジン(リレーコラム)他いろいろ
gihyo.jpの連載『[動画で解説]和田卓人の“テスト駆動開発”講座』http://gihyo.jp/dev/serial/01/tdd/全20回すべて動画付き解説ニコニコ動画でも見れます
WEB+DB過去記事の特設サイトと動画も
デベロッパーテスティング・ライブ - 自信を持ってコードを書くための心・技・体 -
【徹底討論】テストなんていらない?! -テストを、どこまでやるべきか?
パネルディスカッション:テストを行うこと、テストを続けること
デブサミ
よろしくおねがいします
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
TDDとは?
TDDとは1. テストを書き2. そのテストを実行して失敗させ(Red)3. 目的のコードを書き4. 1で書いたテストを成功させ(Green)5. テストが通るままでリファクタリングを行う(Refactor)
6. 1~5を繰り返す
テスト?
テストの分類
DeveloperTesting
開発者
開発促進
CustomerTesting
顧客(のロール)
進捗管理
QATesting
品質保証担当者
(のロール)
品質保証
「テスト」
Developer Testingとは
•プログラマの•プログラマによる•プログラマのための•プログラムとしてのテストを書きながら•開発を行っていく手法
xUnit
DeveloperTestingの位置づけ
バージョン管理テスティング
自動化
バージョン管理テスティング
自動化
バージョン絵巻物
バージョン管理テスティング
自動化
素早いフィードバック
バージョン管理テスティング
自動化
自動化自働化
XFD
会場に詳しい人いるよ!!
目標は?
動作する、きれいなコードへ
きれい
汚い
(すぐには)動かない 動作する
二つの道がある
TDDのサイクル1. テストを書き2. そのテストを実行して失敗させ(Red)3. 目的のコードを書き4. 1で書いたテストを成功させ(Green)5. テストが通るままでリファクタリングを行う(Refactor)
6. 1~5を繰り返す
きれい
汚い
(すぐには)動かない 動作する
Red
Green
Refactoring
TDDと黄金の回転
TDDはテスト技法では
ない
品質保証?品質向上?
バグ発見とコスト
TDDは品質を
保証しない
TDDは品質を向上する
TDDは設計技法です
TDDミクロの視点マクロの視点
私たちが気付くのはいつ?
計画する計画し続ける
設計する設計し続ける
テストは目的ではなく手段
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
TDDのこころ
一つずつ少しずつ
ひとりずつ対処する。
複数を相手にしない。
動作する、きれいなコードへ
きれい
汚い
(すぐには)動かない 動作する
二つの道がある
きれい
汚い
(すぐには)動かない 動作する
Red
Green
Refactoring
TDDと黄金の回転
すばやくまわす
REPLRead Eval Print Loop
IDE + JUnit= Java の対話環境
自分が最初のユーザ
eat yourown
dog food
不安をテストに
勇気か蛮勇か
脳をむだなく
老人力ジャグリング
IDE を使いこなせ
EclipseNetBeans
テストは人の為ならず
TDDのこころ•一つずつ、少しずつ•すばやくまわす•自分が最初のユーザ•不安をテストに•脳をむだなく•テストは人の為ならず
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
TDDはじめの一歩
一人でも始められる
読書
写経
動画
gihyo.jpの連載『[動画で解説]和田卓人の“テスト駆動開発”講座』http://gihyo.jp/dev/serial/01/tdd/全20回すべて動画付き解説ニコニコ動画でも見れます
WEB+DB過去記事の特設サイトと動画も
小さく始める
末端クラスから始める
勉強会に行こう
Agenda•TDDとは?•TDDのこころ•TDDはじめの一歩•FAQ
FAQ
テストのないコードが沢山あるんだけど
テストしにくいところは?
どこをテストすべき?
デバッガじゃだめなの?
テストの単位
1クラスファイルに1テストファイル?
1メソッドに1テスト?
リファクタリングに終わり無いんじゃ?
カバレッジ100%の誤解
まとめ
TDDのこころ•一つずつ、少しずつ•すばやくまわす•自分が最初のユーザ•不安をテストに•脳をむだなく•テストは人の為ならず
きれい
汚い
(すぐには)動かない 動作する
Red
Green
Refactoring
TDDと黄金の回転
デモ
Eclipse Galileo RC2
Quick-JUnit 0.5 beta
JUnitMax
TDDの基本テクニック• テストファースト• アサートファースト
• 仮実装(Fake it)• Fake it はテストのテスト
• 三角測量(Triangulation)• 明白な実装(Obvious Implementation)
Design for Testability
• テストしやすいコードを書くためには?• テストから先に書く => テスト可能になる• テストを考える = 設計を考える
Refactoring
• 呼吸をするようにリファクタリングする• Rename (改名)• Extract (抽出)• Inline (インライン化)
おわりに
テストはスキルです• テストやTDDはスキルです。つまり…• 才能ではなく、習得可能です• 量は質に転化します• 写経!!
ご清聴ありがとうございました