テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 ·...

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

Transcript of テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 ·...

Page 1: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Mar, 14 2009 @ SeasarCon White

Page 2: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

自己紹介

Page 3: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

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

メール: [email protected]

Twitter: http://twitter.com/t_wada

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

Page 4: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 5: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 6: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

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

Page 7: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

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

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

デブサミ

Page 8: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

よろしくおねがいします

Page 9: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 10: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 11: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

TDDとは?

Page 12: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

6. 1~5を繰り返す

Page 13: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

テスト?

Page 14: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

テストの分類

DeveloperTesting

開発者

開発促進

CustomerTesting

顧客(のロール)

進捗管理

QATesting

品質保証担当者

(のロール)

品質保証

「テスト」

Page 15: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

Developer Testingとは

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

Page 16: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

JUnitS2Unit

Page 17: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

DeveloperTestingの位置づけ

Page 18: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

自動化

Page 19: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 20: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

自動化

Page 21: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

バージョン絵巻物

Page 22: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 23: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

自動化

Page 24: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

素早いフィードバック

Page 25: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

自動化

Page 26: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

自動化自働化

XFD

続きは Hudson セッションで

Page 27: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

目標は?

Page 28: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

きれい

汚い

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

二つの道がある

Page 29: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

6. 1~5を繰り返す

Page 30: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

きれい

汚い

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

Red

Green

Refactoring

TDDと黄金の回転

Page 31: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

TDDはテスト技法では

ない

Page 32: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

品質保証?品質向上?

Page 33: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

バグ発見とコスト

Page 34: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

TDDは設計技法です

Page 35: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 36: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

TDDのこころ

Page 37: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

一つずつ少しずつ

Page 38: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

ひとりずつ対処する。

複数を相手にしない。

Page 39: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

きれい

汚い

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

二つの道がある

Page 40: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

きれい

汚い

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

Red

Green

Refactoring

TDDと黄金の回転

Page 41: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

すばやくまわす

Page 42: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

REPLRead Eval Print Loop

Page 43: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

IDE + JUnit= Java の対話環境

Page 44: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

自分が最初のユーザ

Page 45: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

eat yourown

dog food

Page 46: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

不安をテストに

Page 47: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

勇気か蛮勇か

Page 48: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

脳をむだなく

Page 49: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

老人力ジャグリング

Page 50: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 51: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

IDE を使いこなせ

Page 52: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

EclipseNetBeans

続きは DBFlute セッションで

Page 53: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

テストは人の為ならず

Page 54: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 55: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 56: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

TDDはじめの一歩

Page 57: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

一人でも始められる

Page 58: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

読書

Page 59: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 60: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 61: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

写経

Page 62: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 63: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

動画

Page 64: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

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

Page 65: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

小さく始める

Page 66: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

末端クラスから始める

Page 67: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

勉強会に行こう

Page 68: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 69: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 70: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

FAQ

Page 71: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 72: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 73: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 74: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 75: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

どこをテストすべき?

Page 76: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 77: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

デバッガじゃだめなの?

Page 78: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA
Page 79: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

テストの単位

Page 80: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 81: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

1メソッドに1テスト?

Page 82: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 83: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

カバレッジ100%の誤解

Page 84: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

まとめ

Page 85: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 86: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 87: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

きれい

汚い

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

Red

Green

Refactoring

TDDと黄金の回転

Page 88: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

おわりに

Page 89: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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

Page 90: テスト駆動開発のこころ (TDD はじめの一歩) - Seasar Foundation · 2017-12-12 · テスト駆動開発のこころ (TDD はじめの一歩) Author: 和田 卓人 (WADA

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