codezineacademy tdd実践講座pr資料

41

Upload: yasui-tsutomu

Post on 23-Jan-2017

1.118 views

Category:

Education


0 download

TRANSCRIPT

Page 1: CodeZineAcademy TDD実践講座PR資料
Page 2: CodeZineAcademy TDD実践講座PR資料

TDD実践講座

Page 3: CodeZineAcademy TDD実践講座PR資料

テスト駆動開発をハンズオンで学べる!

Page 4: CodeZineAcademy TDD実践講座PR資料

タイムテーブル

1. TDDのこころ (講義)

2. TDDデモ&チュートリアル

3. TDD体験セッション

4. 全体コードレビュー

5. TDD応用編 (講義)

6. ふりかえり

Page 5: CodeZineAcademy TDD実践講座PR資料

すごい講師とTAがつきっきり!

Page 6: CodeZineAcademy TDD実践講座PR資料
Page 7: CodeZineAcademy TDD実践講座PR資料

http://event.shoeisha.jp/aa#Professors

和田卓人id: t-wada@t_wadagithub: twada

Page 8: CodeZineAcademy TDD実践講座PR資料
Page 9: CodeZineAcademy TDD実践講座PR資料
Page 10: CodeZineAcademy TDD実践講座PR資料

太田 健一郎

株式会社 SHIFT

Test AutomatorJenkins Selenium Geb JavaScript

テスト自動化

CI

twitter:@oota_ken facebook:oota.kengithub:ootaken

Page 11: CodeZineAcademy TDD実践講座PR資料
Page 12: CodeZineAcademy TDD実践講座PR資料

安井 力 / やっとむtwitter:@yattomhttps://www.facebook.com/yattom

プログラマーJava Python Ruby JavaScript

テスト駆動開発

アジャイルコーチワークショップ 現場導入 技術支援

コンサルタントモデリング

Page 13: CodeZineAcademy TDD実践講座PR資料

16

The Scrum Field Guide (Mitch Lacey)和訳が出ます!

(安井力、近藤寛喜、原田騎郎 訳)

「本書はガイドとして、スクラムの初歩から熟達に向け、現実的な

方法を指導してくれる。…より高度で実践的な、スクラム

フレームワークをあなた自身とあなたのチームで機能させるための

ガイドだ。」(ジム・ハイスミス)

発売日: 2月26日予価: 3,480円マイナビ出版

Amazon.co.jpにて予約受付中!

Page 14: CodeZineAcademy TDD実践講座PR資料

カンバン仕事術―チームではじめる見える化と改善

(Kanban In Actionの翻訳)

発売日: 3月25日予価: 3,888円

オライリージャパン

Amazon.co.jpにて予約受付中!

Page 15: CodeZineAcademy TDD実践講座PR資料
Page 16: CodeZineAcademy TDD実践講座PR資料

ペアプロやコードレビューでお互いに学び合う場

Page 17: CodeZineAcademy TDD実践講座PR資料

ペアプログラミングとは

"Write all production programs with two people sitting at

one machine. ... Pair programming is a dialog between

two people simultaneously programming (and designing

and testing) and to program better."

(Extreme Programming Explained 2nd)

「プロダクションコードはすべて、2人で1台のマシンに向かって書くこと。…ペアプログラミングとは、プログラミングしながら2人で会話することだ(設計もテストも同時にする)。会話するのは、もっと上手にプログラムするためである。」

Page 18: CodeZineAcademy TDD実践講座PR資料
Page 19: CodeZineAcademy TDD実践講座PR資料

ふりかえり

Page 20: CodeZineAcademy TDD実践講座PR資料

Keep(よかったこと)の例

• TDDがどういうものなのか理解できた※誤った認識を今まで持っていた……

• 今日学習した黄金のサイクルは今後も意識的に続けていこうと思った。

• 気づかないうちにチェックされていた→必要なときに正に指摘を受けた

Page 21: CodeZineAcademy TDD実践講座PR資料

Try(これからやりたいこと)の例

• 新規のプロジェクトでTDDを導入してみようと思う

• 自宅で復習と理解を深めるためにビールを飲みながら独りTDDをやってみる

• 今日から写経をはじめます

Page 22: CodeZineAcademy TDD実践講座PR資料

体験しないとわからない

Page 23: CodeZineAcademy TDD実践講座PR資料

TDDの特徴

• 体験しないとわからない (ペアプロも)

• 練習すれば上達する

• 状況、対象、設計、スキルなどに応じて幅広い様々な手法、アプローチがある

Page 24: CodeZineAcademy TDD実践講座PR資料

TDD実践講座の特徴

• 体験しないとわからない (ペアプロも)

• 練習すれば上達する

• 状況、対象、設計、スキルなどに応じて幅広い様々な手法、アプローチがある

• 体験できる(ペアプロも)

• 練習を始めるきっかけになる

• 熟練者、経験者に具体的相談ができる

Page 25: CodeZineAcademy TDD実践講座PR資料

TDDBC(TDD Boot Camp)

• コミュニティによるイベント

• ボランティア講師・TA• ハイレベル(な人も来てくれる)!

• 土日 半日~1日

• 全国で不定期に開催

• 無料!

• 2/27(土) 東京

https://tddbc.doorkeeper.jp/

Page 26: CodeZineAcademy TDD実践講座PR資料

よくある質問

Page 27: CodeZineAcademy TDD実践講座PR資料

TDDはテストですか

Page 28: CodeZineAcademy TDD実践講座PR資料

TDDはテスト手法か?

• テスト駆動開発 = 開発手法

• TDDはテストの代わりにならない• 部分的に担保できることもある

• TDDで書いたテストも積極的に整理(削除)する

• 「TDDだからテストしないよ!」ちょっとそこに座れ

っていうか実践講座来なさい

Page 29: CodeZineAcademy TDD実践講座PR資料

TDD導入したいけどコストが増えそう

Page 30: CodeZineAcademy TDD実践講座PR資料

テスト駆動開発の効果

IBMドライバ

MicrosoftWindows

MicrosoftMSN

MicrosoftVisualStudio

チーム人数 9 6 5-7 7

コード量(KLOC) 41.0 6.0 26.0 155.2

開発規模(人月) 119 24 46 20

欠陥数(TDD未使用に対する)

61% 38% 24% 9%

開発時間の増加(管理者の見積)

15~20% 25~35% 15% 20~25%

Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, Laurie Williams “Realizing quality improvement through test driven development: results and experiences of four industrial teams” 2008http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf

Page 31: CodeZineAcademy TDD実践講座PR資料

保守性への影響

※1 保守期間(260日間)中、変更要求の対応にかかった工数の平均

"The effectiveness of test-driven development: an industrial case study"

(Tomazˇ Dogsˇa • David Baticˇ , Software Qual J (2011))

生産性(行数/工数)

保守性 ※1

(工数/変更件数)

プロジェクトA(非TDD)

2.3 84

プロジェクトB(非TDD)

2.5 80

プロジェクトC(TDD)

1.8 59

Page 32: CodeZineAcademy TDD実践講座PR資料

TDDの効果の研究をまとめた研究

"Effects of Test-Driven Development: A Comparative Analysis of Empirical Studies" Simo Makinen and JurgenMunch, 2013

• 既存の実証研究を調査し、10の内部・外部品質評価項目で、各研究の結論を整理した

• TDDは欠陥の作り込み(introduced defects)を減らし、メンテナンスしやすいコードを産む

• TDDで実装されたコードは、部分的に、サイズが小さく、複雑度が低い場合がある

• メンテナンスがしやすくなるものの、初期開発では時間がかかる

Page 33: CodeZineAcademy TDD実践講座PR資料

でも絶対テスト書くんでしょ?

TDD再考 (7) – テストはどこまで書けば良いのか?

Beck氏の回答はシンプルである。

「私は機能するコードに対してお金を貰っているのであって、テストコードの対価を受け取っているわけではない。なので自分の哲学としては、テストにかける労力は必要な自信を得るための最小限度に抑えることにしている」

Page 34: CodeZineAcademy TDD実践講座PR資料

TDDは死んだTDDは死んだ。テスティングよ栄えよ。 by DHHTDDの自殺 by kyon_mm

Page 35: CodeZineAcademy TDD実践講座PR資料

TDDはオワコンって偉い人が言ってたけど?• Ruby on Rails

• 自動テストの仕組みが組み込まれている• BDDが相対的に有利• ユニットテストはコスト高

• TDDだけを指針にすると全体アーキテクチャが壊れる

• 教条主義、狂信、盲信はよくない• なんだってそうだよね

• やってみて言おう• DHHだって何年もやってから• やったことないなら実践講座へ!

Page 36: CodeZineAcademy TDD実践講座PR資料

TDDで品質あがる?

Page 37: CodeZineAcademy TDD実践講座PR資料

テスト駆動開発の効果

IBMドライバ

MicrosoftWindows

MicrosoftMSN

MicrosoftVisualStudio

チーム人数 9 6 5-7 7

コード量(KLOC) 41.0 6.0 26.0 155.2

開発規模(人月) 119 24 46 20

欠陥数(TDD未使用に対する)

61% 38% 24% 9%

開発時間の増加(管理者の見積)

15~20% 25~35% 15% 20~25%

Nachiappan Nagappan, E. Michael Maximilien, Thirumalesh Bhat, Laurie Williams “Realizing quality improvement through test driven development: results and experiences of four industrial teams” 2008http://research.microsoft.com/en-us/groups/ese/nagappan_tdd.pdf

Page 38: CodeZineAcademy TDD実践講座PR資料

品質 = 欠陥数?

Making Software (2011年)

12章 “How Effective is Test-Driven Development?”

Burak Turhan, Lucas Layman, Madeline Diep, Hakan Erdogmus, Forrest Shull

• 内部品質 – よかったり悪かったり

• 外部品質 – いいけど悪いことも

• 生産性 – なんとも言えない

• テスト品質 – 悪くはなさそう

結論: まだ何とも言えない

Page 39: CodeZineAcademy TDD実践講座PR資料

TDDで品質上がる?

• たちどころに品質を良くしたい人は壺を買ってください(100万円)

• 自分たちの力で品質を良くしたい人は• 変更があるプロダクトでは、自動回帰テストは確実

に効果がある(コストもかかる)

• TDDはテスト自動化推進の役に立つ(こともある)

• そもそもバグだらけなら、何やっても効果がある(TDDでもいいけどプロセスのほうが…)

Page 40: CodeZineAcademy TDD実践講座PR資料

TDDの効果は?

• テストを書く習慣と力が付く• チームのディシプリン

• TDDで成功しているチームはある• TDDのよいやり方を学べば効果が期待できる• 使いどころを見極められる

• TDDはフィードバックと見直しのサイクル• 改善を促進する力がある• スキル向上のチャンスも多くなる

• “品質が良くなるという研究があります”!• 上司を説得するのに有効

• まだ疑問が……• 実践講座で話しましょう!

Page 41: CodeZineAcademy TDD実践講座PR資料

次回 3/3(水)講師は和田さんお待ちしています!