SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
新人がTDDを
    学ぶ方法
             (株)永和システムマネジメント
                      伊藤 邦彦
2012.04.06          kunitoo@esm.co.jp
TDD カンファレンス 2012
@kunitoo
フィードバック、ご意見
感想、だめだしは
この後の懇親会
または、@kunitoo で
お待ちしています
自己紹介
•受託開発をしているJavaプログラマ
• 新卒で入社して、TDDを初めて知った

•オブジェクト指向が好き
•意図の伝わるソースコードを書くことを
大切にしている
概要

•
新人がTDDをどのように学
んだか

•
普段どのように考えてテス
トを書いているか
新人がTDDをどのように学ん
だか


•師匠とペアプロ(ペア作業)

• 指示を貰いながらコードを書く
プロダクトコードを

変更しようとすると

「まずテストから書こうか」

を繰返した
繰返し言われることに
よって自然とテストか
ら書くようになった
テスト書くようになっ
たはいいが、実際に一
人で書こうとすると手
が止まることが大かっ
た
なぜ手が止まるのか?
あれも考慮しなきゃ
あ!そしてたらあっち
もだ。じゃさっきのは
大丈夫なのかな?
師匠の教え

•   余計なことは考えない。

• 今必要な一番簡単な例を一つだ
け考えよう。

•
不安、自信のないところのテス
トを書こう。
必要なことを必要なときやる



•
簡単な例を繰返し徐々に必要な
プロダクトを組み立ていく
普段どのようにテストを書い
ているか
•ポーカーを題材に作成してみる

• プレイヤーがワンペアかどうか
判定するメソッドを作成
* ワンペア:同一ランク(数字)のカード2枚のペア
1セット(残り3枚は何でもよい)。
isOnePairを作ろう!

•   クラスを作る(Player)

• テストクラスを作る
 (TestPlayer)

•手持ちカードの数字が1、1、
 2、3、4の時trueを返す
isOnePairがtrueを返す
手持ちカードの数字が1、1、
2、3、4の時
手持ちカードの数字が1、1、
2、3、4の時
手持ちカードの数字が1、1、
2、3、4の時
手持ちカードの数字が1、1、
2、3、4の時
isOnePairを作ろう!

•手持ちカードの数字が1、2、
 3、4、5の時falseを返す
手持ちカードの数字が1、2、
3、4、5の時falseを返す
手持ちカードの数字が1、2、
3、4、5の時falseを返す
isOnePairは完成?
isOnePairは完成?
次のケースを考えないと
いけない。
スート(絵柄)とかね
まとめ
余計なことを考えず小さ
く自分が考えやすいこと
からテストを作っていく
ことで徐々にコードを育
てていくことができる。
TDDのテストは具体な状
況を考えやすい形で書い
ていくもの

Mais conteúdo relacionado

Semelhante a 新人がTDDを学ぶ方法

ゆるLTのススメ+α
ゆるLTのススメ+αゆるLTのススメ+α
ゆるLTのススメ+αjoker1007
 
20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編nackypon
 
TDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめTDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめKyota Yasuda
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門ESM SEC
 
レガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamuraiレガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamuraiYoutarou TAKAHASHI
 
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2Masashi Shibata
 
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)seichi23
 
Tdd is really dead ?
Tdd is really dead ?Tdd is really dead ?
Tdd is really dead ?Akira Suenami
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ増田 亨
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTakuto Wada
 
Dev love関西 レガシーコードへの取り組み 20140325
Dev love関西 レガシーコードへの取り組み 20140325Dev love関西 レガシーコードへの取り組み 20140325
Dev love関西 レガシーコードへの取り組み 20140325Seiichi Sugahara
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~Tomomi Kajita
 
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYAいつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYAkyon mm
 
20160326 第10回 Rad Studio 勉強会@Osaka
20160326 第10回 Rad Studio 勉強会@Osaka20160326 第10回 Rad Studio 勉強会@Osaka
20160326 第10回 Rad Studio 勉強会@OsakaRyo Ohki
 
今日から始めるEnvoyの開発
今日から始めるEnvoyの開発今日から始めるEnvoyの開発
今日から始めるEnvoyの開発Rei Shimizu
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会ko ty
 
「いいコード」をみんなで書こう!
「いいコード」をみんなで書こう!「いいコード」をみんなで書こう!
「いいコード」をみんなで書こう!tq_ed
 
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightテストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightkyon mm
 
アプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれアプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれAtsushi Mizoue
 

Semelhante a 新人がTDDを学ぶ方法 (20)

ゆるLTのススメ+α
ゆるLTのススメ+αゆるLTのススメ+α
ゆるLTのススメ+α
 
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hackSue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
 
20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編20150715 『続・断捨離』TDDの心得編
20150715 『続・断捨離』TDDの心得編
 
TDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめTDD、ペアプログラミングのすすめ
TDD、ペアプログラミングのすすめ
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
 
レガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamuraiレガシーコードでTDD力を高めよう #agilesamurai
レガシーコードでTDD力を高めよう #agilesamurai
 
テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2テスト駆動開発入門 - C4K Meetup#2
テスト駆動開発入門 - C4K Meetup#2
 
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
 
Tdd is really dead ?
Tdd is really dead ?Tdd is really dead ?
Tdd is really dead ?
 
オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
 
Test Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるかTest Yourself - テストを書くと何がどう変わるか
Test Yourself - テストを書くと何がどう変わるか
 
Dev love関西 レガシーコードへの取り組み 20140325
Dev love関西 レガシーコードへの取り組み 20140325Dev love関西 レガシーコードへの取り組み 20140325
Dev love関西 レガシーコードへの取り組み 20140325
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
 
いつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYAいつでも聞けるTDD入門 #TDDBC_NAGOYA
いつでも聞けるTDD入門 #TDDBC_NAGOYA
 
20160326 第10回 Rad Studio 勉強会@Osaka
20160326 第10回 Rad Studio 勉強会@Osaka20160326 第10回 Rad Studio 勉強会@Osaka
20160326 第10回 Rad Studio 勉強会@Osaka
 
今日から始めるEnvoyの開発
今日から始めるEnvoyの開発今日から始めるEnvoyの開発
今日から始めるEnvoyの開発
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
 
「いいコード」をみんなで書こう!
「いいコード」をみんなで書こう!「いいコード」をみんなで書こう!
「いいコード」をみんなで書こう!
 
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightテストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
 
アプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれアプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれ
 

新人がTDDを学ぶ方法