SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Agile Evening 2014
Agile Evening #8
2014-02-26 (Wed)
19:00~
Hakozaki 10F
@ryohei_nakazawa
What is a TDD ?
Agile Evening 2014
1
Welcome
お集り頂き
ありがとう
ございます
Golder@2014Sochi
Golder@2014Sochi
Golder@2014Sochi
Golder@2014Sochi
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を動かすことに成功!
業務外で参加ですよ
イマココ
Agile Evening 2014
3
Today’s Theme
Red
GreenRefactor
est riven evelopment
今日のテーマ
『 明日からTDDを始めてみよう 』
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
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
Agile Evening 2014
6
1. TDDとは
2. TDDの基本サイクル
3. TDDが目指すところ
Part.1
そもそもTDDって何なのさ? - What is a TDD ?
Red
GreenRefactor
Agile Evening 2014
7
1. TDDとは
Wikipedia先生によると。
Agile Evening 2014
8
1. TDDとは
■TDDをざっくり見てみましょう。
① 開発手法(プラクティス)のひとつです
② サムライが「問答無用で実践すべき」といっています
③ ライトウィングです
④ テストファーストという考え方です
⑤ xUnitをつかいます
むむ?
Agile Evening 2014
9
① 開発手法(プラクティス)のひとつです
テスト駆動開発 (てすとくどうかいはつ、test-driven development; TDD) とは、プログラム開発手法の
一種で、プログラムに必要な各機能について、最初にテストを書き(これをテストファーストと言う)、
そのテストが動作する必要最低限な実装をとりあえず行った後、コードを洗練させ
る、という短い工程を繰り返すスタイルである。多くのアジャイルソフトウェア開発手法、例えばエクストリーム・
プログラミングにおいて強く推奨されている。近年はビヘイビア駆動開発へと発展を遂げている。
(以下略)
※引用元:http://ja.wikipedia.org/wiki/テスト駆動開発
1. TDDとは (1/5)
【参考】「~駆動開発」家の親戚
・TiDD : チケット
・DDD : ドメイン
・BDD : ビヘイビア
・MDD : モデル
・ODD:オカン(ビックオー)(Yammerにリンクあり)
などなど
Agile Evening 2014
10
② サムライが「問答無用で実践すべき」といっています
1. TDDとは (2/5)
1/4 ではなく 3/4で
リーチ!!
http://www.amazon.co.jp/
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
Agile Evening 2014
12
④ テストファーストという考え方です
※V字モデルでいうところの実装前後でイメージください
1. TDDとは (4/5)
• 実装する前にテストを考える!
• どのように動けば良いか(仕様)を明確化
• テストコード ⇒ 動くコード(プロダクションコード)⇒ リファ
(蛇足)設計書が不要という話ではなく、動作するコードを中心に考えている。
アジャイル宣言「包括的なドキュメントより動くソフトウェアを、」にとありますが
設計書が不要だなんて何処にも無い!
⇒ アジャイルに対するよくある誤解・・・
about
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)
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
Agile Evening 2014
15
1. TDDとは (まとめ)
■TDDを超・超・超ざっくり言うと・・・
【仕様書】
「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す。
朝(05:00以上 12:00未満)の場合、「おはようございます」
昼(12:00以上 18:00未満)の場合、「こんにちは」
夜(18:00以上 05:00未満)の場合、「こんばんは」
という仕様がある時に、
「この仕様を満たすコード」をテストするための
「テストコード」から書き始めるってイメージです
なんだ簡単じゃん。 詳しくは後半デモで。
Agile Evening 2014
16
1. TDDとは
2. TDDの基本サイクル
3. TDDが目指すところ
Part.1
そもそもTDDって何なのさ? - What is a TDD ?
Red
GreenRefactor
Agile Evening 2014
17
2. TDDの基本サイクル
TDDには、とても大事な基本サイクルがあります。
これを無くしては、いくらテストコードを書いても、TDDにならない。
この基本サイクルを回すこと、これがテスト駆動開発。
これかいな・・・?
Red
GreenRefactor
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)
Agile Evening 2014
19
Refactoring
引用元:http://www.slideshare.net/t_wada 「TDDのこころ」 (CC BY 2.1 JP)
この基本サイクルを回せ!回せ!回せ!
2. TDDの基本サイクル
Agile Evening 2014
20
2. TDDの基本サイクル
TDD!!
引用元:http://www.slideshare.net/t_wada 「TDDのこころ」 (CC BY 2.1 JP)
この基本サイクルを回すことで、コードが成長していくイメージ!
更に。この回し方にはコツがあるらしい!
Agile Evening 2014
21
2. TDDの基本サイクル
この基本サイクルを回すコツ。
一.徐々に(一度に沢山やらない)
二.素早く(慣れるとスゴいスピード)
三.何度も何度も(サイクリングサイクリング、ヤホーヤホー)
Red
GreenRefactor
Agile Evening 2014
22
1. TDDとは
2. TDDの基本サイクル
3. TDDが目指すところ
Part.1
そもそもTDDって何なのさ? - What is a TDD ?
Red
GreenRefactor
Agile Evening 2014
23
3. TDDが目指すところ
TDDについて、なんとなくイメージがついてきましたか?
ちなみに、このTDD。誰が嬉しいのでしょうかね?
顧客?
マネージャ?
テスター?
次は 「TDDが目指すところ」 です。
いいことあるの?
Agile Evening 2014
24
■結論■
TDDは素晴らしいコードをつくる
と い う よ り も
素晴らしいエンジニアを育てる
3. TDDが目指すところ
Agile Evening 2014
25
3. TDDが目指すところ
「エンジニアを育てる」 とは
① TDDの基本サイクルから常にフィードバックがあり、
② テストし易いコードが身に付き、
③ ボトムアップで良い設計を知ることができる
つまり
自分の書いたコードに自信を持てるようになる
コードを書くことに自信を持てるようになる
落ちないで…
http://free-photos.gatag.net/
Agile Evening 2014
26
3. TDDが目指すところ
で?誰なの?
開発者自身。
私も。
あなたも。
我々全員!
我々は良いシステム・ソフトウェアを顧客に届けることが仕事。
それができるエンジニアをTDDは育ててくれそうだ。Agileかどうかではなく。
Agile Evening 2014
27
3. TDDが目指すところ
いや、実はとても取っつきやすい!
= ハードル低い
= 明日からだって出来る
でも、なんか難しそう。。。
Agile Evening 2014
28
3. TDDが目指すところ
なぜ難しそうなのかを考えてみる。
Q1.そもそもうちのシステムにテストコードないんですけど。
Q2.テストコード書くなんて作業量が増えるだけじゃ?メンテも大変そう。
Q3. テストデータをちゃんと揃えたり・・・
Q4.リファクタリングの工数なんて無いんですけど。
Q5.「TDDやろう」と周りを説得できそうもないんですけど。
Agile Evening 2014
29
Q1.そもそもうちのシステムにテストコードないんですけど。
3. TDDが目指すところ
Unitテストをした方がよさげなところから着手しましょう。
それで良い。
すこしづつ。すこしづつ。
レガシーコード(注)改善にTDD。
(注)レガシーコードとは、テストコードの無いプロダクションコードのこと
http://www.amazon.co.jp/
Agile Evening 2014
30
Q2.テストコード書くなんて作業量が増えるだけじゃ?メンテも大変そう。
3. TDDが目指すところ
確かにコード書く量は増えます。
逆にそれが良い。沢山書ける。書きなおせる。育つ。
やりたい人だけやればいい!(not やらされ仕事)
Agile Evening 2014
31
Q3.テストデータをちゃんと揃えたり・・・
複雑なテストにならないようなロジックを心がける。
また、仕様のテストをやろうとしない。ハマる。
✔ 仕様のテスト・・・いつものテスト
✔ 実装のテスト・・・TDD
12/8、実際に聞いた話
・PHPの環境
・Junitで実装のテストをした上で、
・Selenium+Jenkins+git+Cucumber で仕様のテスト(自動化)をしている
Agile Evening 2014
32
Q4.リファクタリングの工数なんてなんですけど・・・
3. TDDが目指すところ
「リファクタリングやらしてください」 は 負け
いつものサイクルの中で、リファクタリングする。
少しづつ。少しづつ。
素早く。素早く。
Agile Evening 2014
33
Q5.「TDDやろう」と周りを説得できそうもないんですけど。
3. TDDが目指すところ
コーディング&デバッグの世界はLocal環境。
ひとりで始めてしまえばエエヤン。
やってみて良かったら、
周りを巻き込んでみるって感じで。
※ちなみにTDDとペアプロは相性良いようです
12/8に見たライブコーディングはペアプロでした
Agile Evening 2014
34
3. TDDが目指すところ(まとめ)
TDD実践者たちの生の声(12/8@渋谷)
・やってみたら分かるよ!
・TDDが身に付いたら勝ちです
・半年もかからないよ。 などなど
Agile Evening 2014
35
3. TDDが目指すところ(まとめ)
TDD 7つの心得
一
、
自
発
的
な
姿
勢
一
、
気
に
な
る
と
こ
ろ
か
ら
一
、
常
に
基
本
サ
イ
ク
ル
を
意
識
一
、
大
が
か
り
な
工
事
は
止
め
る
(
仮
実
装
す
る
/
徐
々
に
作
る
)
一
、
テ
ス
ト
コ
ー
ド
作
成
も
プ
ロ
グ
ラ
ミ
ン
グ
の
一
部
と
割
り
切
る
×
仕
様
の
テ
ス
ト
◎
実
装
の
テ
ス
ト
一
、
T
D
D
は
万
能
薬
で
は
な
い
×
U
I
(
画
面
描
画
系
)
◎
共
通
ビ
ジ
ネ
ス
ロ
ジ
ッ
ク
一
、
テ
ス
ト
の
基
本
に
立
ち
返
る
同
値
分
割
境
界
値
分
析
オ
ー
ル
ペ
ア
デ
シ
ジ
ョ
ン
テ
ー
ブ
ル
・
・
・
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
Agile Evening 2014
37
① How to …
TDDってなんか良さげだねぇ
ホントに明日からやれるの?
できます!
Javaの場合だと・・・
Agile Evening 2014
38
① How to …
1.Javaをいんすと~る。
2.Eclipseをいんすと~る。
いじょ。
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
Agile Evening 2014
40
① demonstration
このデモの目的
TDDの基本サイクルのイメージを具体的に掴む
※細かいところは気にせずにm(__)m
Red
GreenRefactor
Agile Evening 2014
41
【仕様書】
「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す機能。
なお、タイムゾーンはAsia/Tokyoとする。
朝(05:00:00以上 12:00:00未満)の場合、「おはようございます」と返す
昼(12:00:00以上 18:00:00未満)の場合、「こんにちは」と返す
夜(18:00:00以上 05:00:00未満)の場合、「こんばんは」と返す
例: 8時にgreeter.greet()を呼ぶと”おはようございます”と返す
※題材はCodeIQのものをカスタマイズしております
https://codeiq.jp/ace/wada_takuto/q469
https://codeiq.jp/magazine/2013/11/1475/
① demonstration
(想定)
運用保守プロジェクト。
ユーザーから問合せの電話が。
12:00なのに「おはよう」って言われたんですけど!
さて、調査して直しましょう。TDDで。
Agile Evening 2014
42
デモの大きな流れ
1. JUnitをつかって再現
↓
2. 欠陥を修正する
↓
3. テストコードを今後も使えるものにする
① demonstration
Red
GreenRefactor
Agile Evening 2014
43
TDDどうですか?
やってみませんか?
Red
GreenRefactor
Let’s TDD !!
Agile Evening 2014
Thank you !
44
To be continue… (from now on)
Special thanks to. . .
Mr.Masuda Mr.Sano
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に関する参考資料
Agile Evening 2014
46
OSはWindows7
1)Java開発環境の基本、JDKをインスト
http://www.kkaneko.com/rinkou/javaintro/javac.html
http://www.searchman.info/java_eclipse/1010.html
2)Pathなどを設定し、コマンドプロンプトでHelloWorld!!
http://note.chiebukuro.yahoo.co.jp/detail/n151046
http://www.javaroad.jp/java_basic1.htm
http://mibc.blog.fc2.com/blog-entry-56.html
3)Eclipse4.3インスト&日本語化
http://www.kkaneko.com/rinkou/javaintro/eclipse.html#2
4)EclipseでHelloWorld!!
http://www.searchman.info/java_eclipse/1080.html
6)EclipseでJunit(テストコード)
http://www.javaroad.jp/opensource/js_eclipse9.htm
★その他★
早わかり Junit 30分講座
デモ環境作成メモ
Agile Evening 2014
47
※当資料の画像については、以下サイトからも利用させていただきました。
■野鳥の写真素材
http://www.glumdog.com/
■ソザイング
http://sozaing.com/
■.foto project
http://free.foto.ne.jp/
その他

Weitere ähnliche Inhalte

Was ist angesagt?

焦らず急いでの意味
焦らず急いでの意味焦らず急いでの意味
焦らず急いでの意味kyon mm
 
20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編nackypon
 
モダン開発をかじってみる
モダン開発をかじってみるモダン開発をかじってみる
モダン開発をかじってみるal16030
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめKei Sawada
 
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料Yasui Tsutomu
 
「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様
「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様
「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様ques_staff
 
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUpUnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUpkyon mm
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーShuji Watanabe
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014Takuto Wada
 
ペアプログラミング ホントのところ
ペアプログラミング ホントのところペアプログラミング ホントのところ
ペアプログラミング ホントのところTakuto Wada
 
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」Hiroyuki Ohnaka
 
Hey It's Not My TDD!
Hey It's Not My TDD!Hey It's Not My TDD!
Hey It's Not My TDD!Yasui Tsutomu
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門ESM SEC
 
TddカンファレンスLT
TddカンファレンスLTTddカンファレンスLT
TddカンファレンスLTkyon mm
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前にYasui Tsutomu
 
テスト駆動開発入門
テスト駆動開発入門テスト駆動開発入門
テスト駆動開発入門Shuji Watanabe
 

Was ist angesagt? (19)

焦らず急いでの意味
焦らず急いでの意味焦らず急いでの意味
焦らず急いでの意味
 
20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編
 
モダン開発をかじってみる
モダン開発をかじってみるモダン開発をかじってみる
モダン開発をかじってみる
 
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめTDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
 
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
 
「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様
「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様
「Qaエンジニアのキャリアについて考える : 急(q) 〜 いろいろな組織でやったこと〜」 山本様
 
TDDのススメ
TDDのススメTDDのススメ
TDDのススメ
 
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUpUnitTestは最もTDDしやすいか否か? #TDDMeetUp
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
TDD のこころ @ OSH2014
TDD のこころ @ OSH2014TDD のこころ @ OSH2014
TDD のこころ @ OSH2014
 
ペアプログラミング ホントのところ
ペアプログラミング ホントのところペアプログラミング ホントのところ
ペアプログラミング ホントのところ
 
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
2015/10/14 JJUGナイトセミナー「テスト駆動開発ここが聞きたい」
 
Tdd Introduction
Tdd IntroductionTdd Introduction
Tdd Introduction
 
Hey It's Not My TDD!
Hey It's Not My TDD!Hey It's Not My TDD!
Hey It's Not My TDD!
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
 
TddカンファレンスLT
TddカンファレンスLTTddカンファレンスLT
TddカンファレンスLT
 
TDDはじめる前に
TDDはじめる前にTDDはじめる前に
TDDはじめる前に
 
テスト駆動開発入門
テスト駆動開発入門テスト駆動開発入門
テスト駆動開発入門
 

Andere mochten auch

my-spirit-of-tdd
my-spirit-of-tddmy-spirit-of-tdd
my-spirit-of-tddYu Asano
 
Siklu EH-600TX Brochure JP
Siklu EH-600TX Brochure JPSiklu EH-600TX Brochure JP
Siklu EH-600TX Brochure JPNitta Tetsuya
 
ギガビット無線機 Siklu の製品紹介 2016
ギガビット無線機 Siklu の製品紹介 2016ギガビット無線機 Siklu の製品紹介 2016
ギガビット無線機 Siklu の製品紹介 2016Nitta Tetsuya
 
SeasarCon 2009 White TDD
SeasarCon 2009 White TDDSeasarCon 2009 White TDD
SeasarCon 2009 White TDDTakuto Wada
 
TDD #NagoyaTesting
TDD #NagoyaTestingTDD #NagoyaTesting
TDD #NagoyaTestingkyon mm
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot ArmMasuda Tomoaki
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -Shuji Watanabe
 
うそのアジャイル、まことのアジャイル 公開用
うそのアジャイル、まことのアジャイル 公開用うそのアジャイル、まことのアジャイル 公開用
うそのアジャイル、まことのアジャイル 公開用ESM SEC
 
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト Akio Ishida
 
TDD & Pull Request入門
TDD & Pull Request入門TDD & Pull Request入門
TDD & Pull Request入門eiji ienaga
 
PHPのテスト名を日本語にした話
PHPのテスト名を日本語にした話PHPのテスト名を日本語にした話
PHPのテスト名を日本語にした話Norifumi Kawamoto
 
DevLOVE TDD - For Whom the Tests Run
DevLOVE TDD - For Whom the Tests RunDevLOVE TDD - For Whom the Tests Run
DevLOVE TDD - For Whom the Tests RunTakuto Wada
 
Siklu 製品資料 Nov 2016 rev2
Siklu 製品資料 Nov 2016 rev2Siklu 製品資料 Nov 2016 rev2
Siklu 製品資料 Nov 2016 rev2Nitta Tetsuya
 
アジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するアジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するAkiyah
 
ジョジョの奇妙なTDD
ジョジョの奇妙なTDDジョジョの奇妙なTDD
ジョジョの奇妙なTDDjoker1007
 
Certified scrummaster研修について(LT ver.)
Certified scrummaster研修について(LT ver.)Certified scrummaster研修について(LT ver.)
Certified scrummaster研修について(LT ver.)Masaya Taji
 

Andere mochten auch (20)

my-spirit-of-tdd
my-spirit-of-tddmy-spirit-of-tdd
my-spirit-of-tdd
 
Siklu EH-600TX Brochure JP
Siklu EH-600TX Brochure JPSiklu EH-600TX Brochure JP
Siklu EH-600TX Brochure JP
 
ギガビット無線機 Siklu の製品紹介 2016
ギガビット無線機 Siklu の製品紹介 2016ギガビット無線機 Siklu の製品紹介 2016
ギガビット無線機 Siklu の製品紹介 2016
 
SeasarCon 2009 White TDD
SeasarCon 2009 White TDDSeasarCon 2009 White TDD
SeasarCon 2009 White TDD
 
java-ja TDD 2nd
java-ja TDD 2ndjava-ja TDD 2nd
java-ja TDD 2nd
 
TDD #NagoyaTesting
TDD #NagoyaTestingTDD #NagoyaTesting
TDD #NagoyaTesting
 
Windows IoT Core and Robot Arm
Windows IoT Core and Robot ArmWindows IoT Core and Robot Arm
Windows IoT Core and Robot Arm
 
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hackSue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
 
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -TDD BootCamp in JJUG CCC - レガシーコード対策編 -
TDD BootCamp in JJUG CCC - レガシーコード対策編 -
 
うそのアジャイル、まことのアジャイル 公開用
うそのアジャイル、まことのアジャイル 公開用うそのアジャイル、まことのアジャイル 公開用
うそのアジャイル、まことのアジャイル 公開用
 
Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト Prophecyを使ったユニットテスト
Prophecyを使ったユニットテスト
 
TDDを研ぎ究める
TDDを研ぎ究めるTDDを研ぎ究める
TDDを研ぎ究める
 
TDD & Pull Request入門
TDD & Pull Request入門TDD & Pull Request入門
TDD & Pull Request入門
 
PHPのテスト名を日本語にした話
PHPのテスト名を日本語にした話PHPのテスト名を日本語にした話
PHPのテスト名を日本語にした話
 
アジャイル開発
アジャイル開発アジャイル開発
アジャイル開発
 
DevLOVE TDD - For Whom the Tests Run
DevLOVE TDD - For Whom the Tests RunDevLOVE TDD - For Whom the Tests Run
DevLOVE TDD - For Whom the Tests Run
 
Siklu 製品資料 Nov 2016 rev2
Siklu 製品資料 Nov 2016 rev2Siklu 製品資料 Nov 2016 rev2
Siklu 製品資料 Nov 2016 rev2
 
アジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するアジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解する
 
ジョジョの奇妙なTDD
ジョジョの奇妙なTDDジョジョの奇妙なTDD
ジョジョの奇妙なTDD
 
Certified scrummaster研修について(LT ver.)
Certified scrummaster研修について(LT ver.)Certified scrummaster研修について(LT ver.)
Certified scrummaster研修について(LT ver.)
 

Ähnlich wie 20140226_TDD

nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会ko ty
 
TDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめTDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめKyota Yasuda
 
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)seichi23
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpkyon mm
 
レガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamuraiレガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamuraiYoutarou TAKAHASHI
 
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2Masashi Shibata
 
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) 「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) Taku Yajima
 
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編アジャイルの今とこれから-Agile conference2012参加報告-技術動向編
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編Hiroyuki Ito
 
Xp Terakoya 05
Xp Terakoya 05Xp Terakoya 05
Xp Terakoya 05takepu
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門Preferred Networks
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_opsume3_
 
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかったMakoto Iguchi
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜Dai FUJIHARA
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)Masahiro Nishimi
 
[RSGT2019]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
[RSGT2019]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~[RSGT2019]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
[RSGT2019]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~Shigeki Morizane
 
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会Yu Shibatsuji
 
僕らのおれおれメトリクス / We Metrics Our Own Way!
僕らのおれおれメトリクス / We Metrics Our Own Way!僕らのおれおれメトリクス / We Metrics Our Own Way!
僕らのおれおれメトリクス / We Metrics Our Own Way!Yasui Tsutomu
 
[enPiT筑波大ワークショップ(成果発表会)情報交換会]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
[enPiT筑波大ワークショップ(成果発表会)情報交換会]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~[enPiT筑波大ワークショップ(成果発表会)情報交換会]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
[enPiT筑波大ワークショップ(成果発表会)情報交換会]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~Shigeki Morizane
 
20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamuraiTakao Oyobe
 

Ähnlich wie 20140226_TDD (20)

nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
 
TDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめTDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめ
 
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
レガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamuraiレガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamurai
 
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2
 
「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮) 「Agileごっこ」で終わらせないために(仮)
「Agileごっこ」で終わらせないために(仮)
 
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編アジャイルの今とこれから-Agile conference2012参加報告-技術動向編
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編
 
Xp Terakoya 05
Xp Terakoya 05Xp Terakoya 05
Xp Terakoya 05
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
アジャイルマネジメントとマインドセット 〜ヒーローを待っていても世界は変わらない〜
 
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
デキるプログラマだけが知っているコードレビュー7つの秘訣(DevLove版)
 
[RSGT2019]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
[RSGT2019]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~[RSGT2019]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
[RSGT2019]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
 
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会
 
僕らのおれおれメトリクス / We Metrics Our Own Way!
僕らのおれおれメトリクス / We Metrics Our Own Way!僕らのおれおれメトリクス / We Metrics Our Own Way!
僕らのおれおれメトリクス / We Metrics Our Own Way!
 
[enPiT筑波大ワークショップ(成果発表会)情報交換会]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
[enPiT筑波大ワークショップ(成果発表会)情報交換会]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~[enPiT筑波大ワークショップ(成果発表会)情報交換会]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
[enPiT筑波大ワークショップ(成果発表会)情報交換会]全部スクラム!~SIerで大切だったこと、サービサーで大切だったこと~
 
20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai20141213 俺のインセプションデッキ #agilesamurai
20141213 俺のインセプションデッキ #agilesamurai
 

Kürzlich hochgeladen

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Kürzlich hochgeladen (12)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

20140226_TDD

  • 1. Agile Evening 2014 Agile Evening #8 2014-02-26 (Wed) 19:00~ Hakozaki 10F @ryohei_nakazawa What is a TDD ?
  • 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. Agile Evening 2014 3 Today’s Theme Red GreenRefactor est riven evelopment 今日のテーマ 『 明日からTDDを始めてみよう 』
  • 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. Agile Evening 2014 6 1. TDDとは 2. TDDの基本サイクル 3. TDDが目指すところ Part.1 そもそもTDDって何なのさ? - What is a TDD ? Red GreenRefactor
  • 8. Agile Evening 2014 7 1. TDDとは Wikipedia先生によると。
  • 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. Agile Evening 2014 10 ② サムライが「問答無用で実践すべき」といっています 1. TDDとは (2/5) 1/4 ではなく 3/4で リーチ!! http://www.amazon.co.jp/
  • 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. Agile Evening 2014 16 1. TDDとは 2. TDDの基本サイクル 3. TDDが目指すところ Part.1 そもそもTDDって何なのさ? - What is a TDD ? Red GreenRefactor
  • 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. Agile Evening 2014 19 Refactoring 引用元:http://www.slideshare.net/t_wada 「TDDのこころ」 (CC BY 2.1 JP) この基本サイクルを回せ!回せ!回せ! 2. TDDの基本サイクル
  • 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. Agile Evening 2014 22 1. TDDとは 2. TDDの基本サイクル 3. TDDが目指すところ Part.1 そもそもTDDって何なのさ? - What is a TDD ? Red GreenRefactor
  • 24. Agile Evening 2014 23 3. TDDが目指すところ TDDについて、なんとなくイメージがついてきましたか? ちなみに、このTDD。誰が嬉しいのでしょうかね? 顧客? マネージャ? テスター? 次は 「TDDが目指すところ」 です。 いいことあるの?
  • 25. Agile Evening 2014 24 ■結論■ TDDは素晴らしいコードをつくる と い う よ り も 素晴らしいエンジニアを育てる 3. TDDが目指すところ
  • 26. Agile Evening 2014 25 3. TDDが目指すところ 「エンジニアを育てる」 とは ① TDDの基本サイクルから常にフィードバックがあり、 ② テストし易いコードが身に付き、 ③ ボトムアップで良い設計を知ることができる つまり 自分の書いたコードに自信を持てるようになる コードを書くことに自信を持てるようになる 落ちないで… http://free-photos.gatag.net/
  • 27. Agile Evening 2014 26 3. TDDが目指すところ で?誰なの? 開発者自身。 私も。 あなたも。 我々全員! 我々は良いシステム・ソフトウェアを顧客に届けることが仕事。 それができるエンジニアをTDDは育ててくれそうだ。Agileかどうかではなく。
  • 28. Agile Evening 2014 27 3. TDDが目指すところ いや、実はとても取っつきやすい! = ハードル低い = 明日からだって出来る でも、なんか難しそう。。。
  • 29. Agile Evening 2014 28 3. TDDが目指すところ なぜ難しそうなのかを考えてみる。 Q1.そもそもうちのシステムにテストコードないんですけど。 Q2.テストコード書くなんて作業量が増えるだけじゃ?メンテも大変そう。 Q3. テストデータをちゃんと揃えたり・・・ Q4.リファクタリングの工数なんて無いんですけど。 Q5.「TDDやろう」と周りを説得できそうもないんですけど。
  • 30. Agile Evening 2014 29 Q1.そもそもうちのシステムにテストコードないんですけど。 3. TDDが目指すところ Unitテストをした方がよさげなところから着手しましょう。 それで良い。 すこしづつ。すこしづつ。 レガシーコード(注)改善にTDD。 (注)レガシーコードとは、テストコードの無いプロダクションコードのこと http://www.amazon.co.jp/
  • 31. Agile Evening 2014 30 Q2.テストコード書くなんて作業量が増えるだけじゃ?メンテも大変そう。 3. TDDが目指すところ 確かにコード書く量は増えます。 逆にそれが良い。沢山書ける。書きなおせる。育つ。 やりたい人だけやればいい!(not やらされ仕事)
  • 32. Agile Evening 2014 31 Q3.テストデータをちゃんと揃えたり・・・ 複雑なテストにならないようなロジックを心がける。 また、仕様のテストをやろうとしない。ハマる。 ✔ 仕様のテスト・・・いつものテスト ✔ 実装のテスト・・・TDD 12/8、実際に聞いた話 ・PHPの環境 ・Junitで実装のテストをした上で、 ・Selenium+Jenkins+git+Cucumber で仕様のテスト(自動化)をしている
  • 33. Agile Evening 2014 32 Q4.リファクタリングの工数なんてなんですけど・・・ 3. TDDが目指すところ 「リファクタリングやらしてください」 は 負け いつものサイクルの中で、リファクタリングする。 少しづつ。少しづつ。 素早く。素早く。
  • 34. Agile Evening 2014 33 Q5.「TDDやろう」と周りを説得できそうもないんですけど。 3. TDDが目指すところ コーディング&デバッグの世界はLocal環境。 ひとりで始めてしまえばエエヤン。 やってみて良かったら、 周りを巻き込んでみるって感じで。 ※ちなみにTDDとペアプロは相性良いようです 12/8に見たライブコーディングはペアプロでした
  • 35. Agile Evening 2014 34 3. TDDが目指すところ(まとめ) TDD実践者たちの生の声(12/8@渋谷) ・やってみたら分かるよ! ・TDDが身に付いたら勝ちです ・半年もかからないよ。 などなど
  • 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. Agile Evening 2014 37 ① How to … TDDってなんか良さげだねぇ ホントに明日からやれるの? できます! Javaの場合だと・・・
  • 39. Agile Evening 2014 38 ① How to … 1.Javaをいんすと~る。 2.Eclipseをいんすと~る。 いじょ。
  • 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. Agile Evening 2014 40 ① demonstration このデモの目的 TDDの基本サイクルのイメージを具体的に掴む ※細かいところは気にせずにm(__)m Red GreenRefactor
  • 42. Agile Evening 2014 41 【仕様書】 「現在時刻」に応じて、挨拶の内容を下記のようにそれぞれ返す機能。 なお、タイムゾーンはAsia/Tokyoとする。 朝(05:00:00以上 12:00:00未満)の場合、「おはようございます」と返す 昼(12:00:00以上 18:00:00未満)の場合、「こんにちは」と返す 夜(18:00:00以上 05:00:00未満)の場合、「こんばんは」と返す 例: 8時にgreeter.greet()を呼ぶと”おはようございます”と返す ※題材はCodeIQのものをカスタマイズしております https://codeiq.jp/ace/wada_takuto/q469 https://codeiq.jp/magazine/2013/11/1475/ ① demonstration (想定) 運用保守プロジェクト。 ユーザーから問合せの電話が。 12:00なのに「おはよう」って言われたんですけど! さて、調査して直しましょう。TDDで。
  • 43. Agile Evening 2014 42 デモの大きな流れ 1. JUnitをつかって再現 ↓ 2. 欠陥を修正する ↓ 3. テストコードを今後も使えるものにする ① demonstration Red GreenRefactor
  • 45. Agile Evening 2014 Thank you ! 44 To be continue… (from now on) Special thanks to. . . Mr.Masuda Mr.Sano
  • 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に関する参考資料