tdd のこころ

52
TDDの こころ 和田 卓人 (a.k.a id:t-wada or @t_wada) Oct 22, 2010 @Cybozu Developers Conference 2010

Upload: takuto-wada

Post on 28-Nov-2014

5.597 views

Category:

Technology


3 download

DESCRIPTION

The spirit of TDD - Oct 22, 2010 at Cybozu Developers Conference

TRANSCRIPT

Page 1: TDD のこころ

TDDのこころ

和田 卓人 (a.k.a id:t-wada or @t_wada)Oct 22, 2010 @Cybozu Developers Conference 2010

Page 2: TDD のこころ

自己紹介

Page 3: TDD のこころ

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

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

メール: [email protected]

Twitter: http://twitter.com/t_wada

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

Page 4: TDD のこころ

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

Page 5: TDD のこころ

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

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

Page 6: TDD のこころ

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

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

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

Page 7: TDD のこころ

TDD Boot Camp 東京

Page 8: TDD のこころ

TDD Boot Camp 北陸

Page 9: TDD のこころ

TDD Boot Camp 名古屋

Page 10: TDD のこころ

普段やってること•商用 Rails プラグイン(自社製品)の開発•コンサルティング•TDD の啓蒙•Twitter

Page 11: TDD のこころ

プログラマが知るべき97のこと

乞うご期待

日本人寄稿者(邦訳オンリー)@omo2009@m_seki@hyoshiok@miyagawa@hotchpotch@dankogai

@yukihiro_matz@t_wada

Page 12: TDD のこころ

よろしくおねがいします

Page 13: TDD のこころ

TDDの背景

Page 14: TDD のこころ

テストの分類

DeveloperTesting

開発者

開発促進

CustomerTesting

顧客(のロール)

進捗管理

QATesting

品質保証担当者(のロール)

品質保証

「テスト」

Page 15: TDD のこころ

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

Page 16: TDD のこころ

バージョン管理テスティング自動化

Page 17: TDD のこころ

バージョン管理

Page 18: TDD のこころ
Page 19: TDD のこころ

テスティング

Page 20: TDD のこころ

自動化自働化

XFD

Page 21: TDD のこころ

バージョン管理テスティング自動化

Page 22: TDD のこころ

Developer Testingとは

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

Page 23: TDD のこころ

TDDとは?

Page 24: TDD のこころ
Page 25: TDD のこころ

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

きれい

汚い

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

二つの道がある

Page 26: TDD のこころ

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

6. 1~5を繰り返す

Page 27: TDD のこころ

きれい

汚い

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

Red

Green

Refactoring

TDDと黄金の回転

Page 28: TDD のこころ

TDDのこころ

Page 29: TDD のこころ

一つずつ少しずつ

Page 30: TDD のこころ

ひとりずつ対処する。

複数を相手にしない。

Page 31: TDD のこころ

すばやくまわす

Page 32: TDD のこころ

自分が最初のユーザ

Page 33: TDD のこころ

不安をテストに

Page 34: TDD のこころ

祈るのではダメ

Page 35: TDD のこころ

安心して飛び込む

Page 36: TDD のこころ

道具にこだわる

Page 37: TDD のこころ

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

Page 38: TDD のこころ

•即座にフィードバックを得るため•書いたコードに自信を持つため•これから書くコードに自信を持つため

Developer Testing, TDD にソフトウェア工学的なメリットはいろいろあるけれど、最大の理由は工学的なものではない。最大の理由は心理的なもの

Page 39: TDD のこころ

TDDの真の目的

Page 40: TDD のこころ

健康

Page 41: TDD のこころ

変化に対応するのは健康体のコード

Page 42: TDD のこころ

変化に対応するのは健康体のチーム

Page 43: TDD のこころ

不安の克服健康の維持

Page 44: TDD のこころ

事例

Page 45: TDD のこころ

© Towersquest, Inc. 2010. all rights reserved.

TDD導入効果(MS, IBM)

45

IBM Driver MS Windows

MS MSN MS Visual Studio

ソースコードサイズ (KLOC)

41.0 6.0 26.0 155.2

テストコードサイズ (KLOC)

28.5 4.0 23.2 60.3

TDDを採用していない類似プロジェクトでの欠陥密度を1としたときの欠陥密度

0.61 0.38 0.24 0.09

TDD採用により増加したコード実装時間(管理者の見積による) 15~20% 25~35% 15% 25~20%

N. Nagappan, M. E. Maximilien, T. Bhat and L. Williams: Realizing quality improvement through test driven development: results and experiences of four industrial teams, Journal of Empirical Software Engineering, vol. 13, pp. 289-302 (2008)

Page 46: TDD のこころ

© Towersquest, Inc. 2010. all rights reserved.

TDD導入効果(エリクソン他)

• TDDを実施した場合に報告されている知見‣ 機能テストでの不具合検出数が18%削減された‣ コーディング(実装)の時間が16%増えた‣ テストのカバレッジが大きくなった

• 被験者を対象としたアンケート‣ 96%の被験者がデバッグの工数を減らすと感じた‣ 88%の被験者が要求が洗練されると感じた‣ 92%の被験者がコードの品質を上げると感じた‣ 50%の被験者が開発工数を減らすと感じた

46

Boby George, a and Laurie Williams: A structured experiment of test-driven development, Journal of Information and Software Technology Vol. 46, No. 5, p. 337-342(2004)

Page 47: TDD のこころ

おわりに

Page 48: TDD のこころ

acts_as_professional

Page 49: TDD のこころ

きれい

汚い

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

Red

Green

Refactoring

TDDと黄金の回転

Page 50: TDD のこころ
Page 51: TDD のこころ

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

Page 52: TDD のこころ

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