SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
新人が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のテストは具体な状
況を考えやすい形で書い
ていくもの

Weitere ähnliche Inhalte

Ähnlich wie 新人がTDDを学ぶ方法

オブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツオブジェクト指向の設計と実装の学び方のコツ
オブジェクト指向の設計と実装の学び方のコツ
増田 亨
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
ko ty
 

Ähnlich wie 新人が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
 
アプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれアプリ開発を効率化する 方法あれこれ
アプリ開発を効率化する 方法あれこれ
 

Kürzlich hochgeladen

Kürzlich hochgeladen (10)

論文紹介: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
 
論文紹介: 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
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ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...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

新人がTDDを学ぶ方法