Recommended
PPTX
どうやらテスト駆動型開発は死んだようです。これからのCI
PDF
PDF
いつでも聞けるTDD入門 #TDDBC_NAGOYA
PDF
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
PDF
PDF
PDF
PDF
Test Yourself - テストを書くと何がどう変わるか
PDF
PPTX
PDF
PDF
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
PDF
CodeZineAcademy TDD実践講座PR資料
PDF
「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様
PDF
PDF
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
KEY
テスト駆動開発の導入ーペアプログラミングの学習効果ー
PDF
PDF
PDF
PDF
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
PPTX
PDF
PDF
KEY
PPTX
KEY
PDF
PPTX
Siklu EH-600TX Brochure JP
PPTX
ギガビット無線機 Siklu の製品紹介 2016
More Related Content
PPTX
どうやらテスト駆動型開発は死んだようです。これからのCI
PDF
PDF
いつでも聞けるTDD入門 #TDDBC_NAGOYA
PDF
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
PDF
PDF
PDF
PDF
Test Yourself - テストを書くと何がどう変わるか
What's hot
PDF
PPTX
PDF
PDF
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
PDF
CodeZineAcademy TDD実践講座PR資料
PDF
「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様
PDF
PDF
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
KEY
テスト駆動開発の導入ーペアプログラミングの学習効果ー
PDF
PDF
PDF
PDF
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
PPTX
PDF
PDF
KEY
PPTX
KEY
Viewers also liked
PDF
PPTX
Siklu EH-600TX Brochure JP
PPTX
ギガビット無線機 Siklu の製品紹介 2016
PDF
PDF
KEY
PPTX
Windows IoT Core and Robot Arm
PPT
Sue445 Style TDD #atest_hack
PDF
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
PDF
PDF
PDF
PPTX
PPTX
PPT
PDF
DevLOVE TDD - For Whom the Tests Run
PPTX
ODP
PDF
PPTX
Certified scrummaster研修について(LT ver.)
Similar to 20140226_TDD
PDF
2014/3/30 ミニTDDBC presented by yokhama.devtesting
PDF
Test-Driven Development for [Embedded] C by James Grenning at Agile Japan 2013
PPT
PDF
#tdd4ec is back!!〜テスト駆動開発による 組み込みプログラミングの集い〜
PDF
C# から java へのプログラム移植で体験したtddの効果は?
PDF
PDF
TDDはじめて物語 Second Season #tddbc
PPTX
PDF
『JUnit実践入門』写経・実践会 in 横浜 #2
PDF
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
PPT
PDF
PDF
PPTX
PPTX
TDDの「なぜ」に答える! (Answer in "why" of TDD)
PDF
PDF
Fearless Change RSG Japan English.pdf
PDF
PDF
要求モデル/BDD 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第43回】
PDF
チケット駆動開発をパターン言語で読み解く~「成功するプロジェクトのための開発基盤と手法」
20140226_TDD 1. 2. 3. Agile Evening 2014
2
Introduction
■自己紹介 - About myself
✔ @ryohei_nakazawa
✔ Sierで約15年
✔ プログラマ → 設計者 → PM → プロセス改善
✔ 今年初の担当会(2回目は7月)
[ テスト と 私 ]
・1999年ぐらい、DISPLAYコマンドでデバッグをしまくる @ COBOL
・2004年ぐらい、『ソフトウェアテストPRESS』と出会い、
これからはテストだ!自動化だ!と意気込む
・2006年ぐらい、PMだったが、新人のプログラムを奪う → 挫折
JUnitは触れず
・2011年ぐらい、テスト専門ベンダーさんと出会う
・2014年、両手にサポートを得て、遂にJUnitを動かすことに成功!
業務外で参加ですよ
イマココ
4. 5. Agile Evening 2014
ふりー
でぃすかっしょん
4
Story of Today(TDD)
今日の流れはこのような感じ。
第1部
そもそもTDDって何なのさ? - What is a TDD ?
第2部
明日からTDDをやってみよう! - Let’s try a TDD starting tomorrow !!
✔ どうやって?( How to … )
✔ デモ ( demonstration )
Red
GreenRefactor
しつもん
etc
6. Agile Evening 2014
5
Story of Today(TDD)
Part.1
そもそもTDDって何なのさ? - What is a TDD ?
Part.2
明日からTDDをやってみよう! - Let’s try a TDD starting tomorrow !!
✔ どうやって?( How to … )
✔ デモ ( demonstration )
Red
GreenRefactor
7. 8. 9. Agile Evening 2014
8
1. TDDとは
■TDDをざっくり見てみましょう。
① 開発手法(プラクティス)のひとつです
② サムライが「問答無用で実践すべき」といっています
③ ライトウィングです
④ テストファーストという考え方です
⑤ xUnitをつかいます
むむ?
10. Agile Evening 2014
9
① 開発手法(プラクティス)のひとつです
テスト駆動開発 (てすとくどうかいはつ、test-driven development; TDD) とは、プログラム開発手法の
一種で、プログラムに必要な各機能について、最初にテストを書き(これをテストファーストと言う)、
そのテストが動作する必要最低限な実装をとりあえず行った後、コードを洗練させ
る、という短い工程を繰り返すスタイルである。多くのアジャイルソフトウェア開発手法、例えばエクストリーム・
プログラミングにおいて強く推奨されている。近年はビヘイビア駆動開発へと発展を遂げている。
(以下略)
※引用元:http://ja.wikipedia.org/wiki/テスト駆動開発
1. TDDとは (1/5)
【参考】「~駆動開発」家の親戚
・TiDD : チケット
・DDD : ドメイン
・BDD : ビヘイビア
・MDD : モデル
・ODD:オカン(ビックオー)(Yammerにリンクあり)
などなど
11. 12. Agile Evening 2014
11
③ ライトウィングです
1. TDDとは (3/5)
(引用元)An Agile Way 『アジャイルの「ライトウィング」と「レフトウィング」』 平鍋健児氏
http://blogs.itmedia.co.jp/hiranabe/2012/09/rightwing-and-leftwing-of-agile.html
よーく見てみると。。。
This is this
13. Agile Evening 2014
12
④ テストファーストという考え方です
※V字モデルでいうところの実装前後でイメージください
1. TDDとは (4/5)
• 実装する前にテストを考える!
• どのように動けば良いか(仕様)を明確化
• テストコード ⇒ 動くコード(プロダクションコード)⇒ リファ
(蛇足)設計書が不要という話ではなく、動作するコードを中心に考えている。
アジャイル宣言「包括的なドキュメントより動くソフトウェアを、」にとありますが
設計書が不要だなんて何処にも無い!
⇒ アジャイルに対するよくある誤解・・・
about
14. Agile Evening 2014
13
1. TDDとは (4/5)
④ テストファーストという考え方です(つづき)
point 動かしながら、きれいなコードへ
※これは昨年12/8のイベントでt-wada氏の資料より
なるほど!設計を突き詰めることよりも、動くコードをどんどんキレイにしていくのですね!!
TDD!!
従来型!?
引用元:http://www.slideshare.net/t_wada 「TDDのこころ」 (CC BY 2.1 JP)
15. Agile Evening 2014
14
⑤ xUnitをつかいます
・テスティングフレームワーク
・プログラムの最小単位(ユニット)をテスト可能
・テストコードを書き、動くコード(プロダクションコード)をテスト実施
・Eclipseのプラグインとして、JUnitがデフォルトで用意されている
・使っているプロジェクトは多い!?
1. TDDとは (5/5)
【参考】「xUnit」家の親戚
・JUnit : Java用
・NUnit : .NET Framework用
・CUnit : C言語用
・VBUnit : Visual Basic用
・SUnit:Smalltalk用(Kent Beck)
などなど
『 テスト駆動開発入門』
は絶版!
もう中古市場で出回っているだけ
でも
@kakutaniさんがなんとかしてくれる
(ヒュー! ヒュー! @12/8)
https://speakerdeck.com/kakutani/opening-
keynote-for-agilesamurai-basecamp
16. Agile Evening 2014
15
1. TDDとは (まとめ)
■TDDを超・超・超ざっくり言うと・・・
【仕様書】
「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す。
朝(05:00以上 12:00未満)の場合、「おはようございます」
昼(12:00以上 18:00未満)の場合、「こんにちは」
夜(18:00以上 05:00未満)の場合、「こんばんは」
という仕様がある時に、
「この仕様を満たすコード」をテストするための
「テストコード」から書き始めるってイメージです
なんだ簡単じゃん。 詳しくは後半デモで。
17. 18. Agile Evening 2014
17
2. TDDの基本サイクル
TDDには、とても大事な基本サイクルがあります。
これを無くしては、いくらテストコードを書いても、TDDにならない。
この基本サイクルを回すこと、これがテスト駆動開発。
これかいな・・・?
Red
GreenRefactor
19. Agile Evening 2014
18
1. 次の目標を考える
2. その目標を示すテストを書く
3. そのテストを実行して失敗する(Red)
4. 目的のコードを書く
5. 2.で書いたテストを成功させる(Green)
6. テストが通る状態のまま、コードをリファクタリン
グしてキレイに (Refactoring)
7. 1.~6.を繰り返す
2. TDDの基本サイクル
Red
GreenRefactor
【仕様書】
「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す。
朝(05:00以上 12:00未満)の場合、「おはようございます」
昼(12:00以上 18:00未満)の場合、「こんにちは」
夜(18:00以上 05:00未満)の場合、「こんばんは」
参考:http://www.slideshare.net/t_wada 「TDDのこころ」 (CC BY 2.1 JP)
20. 21. Agile Evening 2014
20
2. TDDの基本サイクル
TDD!!
引用元:http://www.slideshare.net/t_wada 「TDDのこころ」 (CC BY 2.1 JP)
この基本サイクルを回すことで、コードが成長していくイメージ!
更に。この回し方にはコツがあるらしい!
22. Agile Evening 2014
21
2. TDDの基本サイクル
この基本サイクルを回すコツ。
一.徐々に(一度に沢山やらない)
二.素早く(慣れるとスゴいスピード)
三.何度も何度も(サイクリングサイクリング、ヤホーヤホー)
Red
GreenRefactor
23. 24. Agile Evening 2014
23
3. TDDが目指すところ
TDDについて、なんとなくイメージがついてきましたか?
ちなみに、このTDD。誰が嬉しいのでしょうかね?
顧客?
マネージャ?
テスター?
次は 「TDDが目指すところ」 です。
いいことあるの?
25. 26. Agile Evening 2014
25
3. TDDが目指すところ
「エンジニアを育てる」 とは
① TDDの基本サイクルから常にフィードバックがあり、
② テストし易いコードが身に付き、
③ ボトムアップで良い設計を知ることができる
つまり
自分の書いたコードに自信を持てるようになる
コードを書くことに自信を持てるようになる
落ちないで…
http://free-photos.gatag.net/
27. Agile Evening 2014
26
3. TDDが目指すところ
で?誰なの?
開発者自身。
私も。
あなたも。
我々全員!
我々は良いシステム・ソフトウェアを顧客に届けることが仕事。
それができるエンジニアをTDDは育ててくれそうだ。Agileかどうかではなく。
28. 29. Agile Evening 2014
28
3. TDDが目指すところ
なぜ難しそうなのかを考えてみる。
Q1.そもそもうちのシステムにテストコードないんですけど。
Q2.テストコード書くなんて作業量が増えるだけじゃ?メンテも大変そう。
Q3. テストデータをちゃんと揃えたり・・・
Q4.リファクタリングの工数なんて無いんですけど。
Q5.「TDDやろう」と周りを説得できそうもないんですけど。
30. 31. 32. 33. 34. 35. 36. Agile Evening 2014
35
3. TDDが目指すところ(まとめ)
TDD 7つの心得
一
、
自
発
的
な
姿
勢
一
、
気
に
な
る
と
こ
ろ
か
ら
一
、
常
に
基
本
サ
イ
ク
ル
を
意
識
一
、
大
が
か
り
な
工
事
は
止
め
る
(
仮
実
装
す
る
/
徐
々
に
作
る
)
一
、
テ
ス
ト
コ
ー
ド
作
成
も
プ
ロ
グ
ラ
ミ
ン
グ
の
一
部
と
割
り
切
る
×
仕
様
の
テ
ス
ト
◎
実
装
の
テ
ス
ト
一
、
T
D
D
は
万
能
薬
で
は
な
い
×
U
I
(
画
面
描
画
系
)
◎
共
通
ビ
ジ
ネ
ス
ロ
ジ
ッ
ク
一
、
テ
ス
ト
の
基
本
に
立
ち
返
る
同
値
分
割
境
界
値
分
析
オ
ー
ル
ペ
ア
デ
シ
ジ
ョ
ン
テ
ー
ブ
ル
・
・
・
37. Agile Evening 2014
36
Story of Today(TDD)
Part.1
そもそもTDDって何なのさ? - What is a TDD ?
Part.2
明日からTDDをやってみよう! - Let’s try a TDD starting tomorrow !!
✔ どうやって?( How to … )
✔ デモ ( demonstration )
Red
GreenRefactor
38. 39. 40. Agile Evening 2014
39
Story of Today(TDD)
Part.1
そもそもTDDって何なのさ? - What is a TDD ?
Part.2
明日からTDDをやってみよう! - Let’s try a TDD starting tomorrow !!
✔ どうやって?( How to … )
✔ デモ ( demonstration )
Red
GreenRefactor
41. 42. 43. 44. 45. 46. Agile Evening 2014
45
■Agile Samurai Base Camp – 2013/12/8@渋谷マークシティ
http://www.agilesamuraibasecamp.org/
■TDD伝道師、t-wadaさん
http://d.hatena.ne.jp/t-wada/
https://codeiq.jp/magazine/2013/11/1475/
http://gihyo.jp/dev/serial/01/tdd?ard=1393337028
■参考URL(English)
http://lewuathe.com/blog/2013/12/09/agile-samurai-basecamp-in-tokyo/
■参考URL(Japanese)
http://www.objectclub.jp/technicaldoc/testing/stack_tdd.pdf
http://appkitbox.com/knowledge/test/2013/01/15/tdd_basic
http://blog.madoro.org/mn/70
http://www.slideshare.net/youtaroutakahashi
http://d.hatena.ne.jp/shuji_w6e/20111204/1323011355
TDDに関する参考資料
47. 48.