Submit Search
Upload
Tddワークショップ
•
2 likes
•
761 views
Yoshihiro Furukawa
Follow
社内で開いたTDDワークショップで使用した資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 23
Download now
Download to read offline
Recommended
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Takuto Wada
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
Yasuhiko Yamamoto
アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況
Arata Fujimura
Small eigen collider ruby kaigi 2011
Small eigen collider ruby kaigi 2011
Andrew Grimm
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
TDDを研ぎ究める
TDDを研ぎ究める
pocketberserker
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
Kei Sawada
Recommended
SeasarCon 2009 White TDD
SeasarCon 2009 White TDD
Takuto Wada
java-ja TDD 2nd
java-ja TDD 2nd
Takuto Wada
わんくま名古屋 #32 (20140823) TDD道場 #20
わんくま名古屋 #32 (20140823) TDD道場 #20
Yasuhiko Yamamoto
アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況
Arata Fujimura
Small eigen collider ruby kaigi 2011
Small eigen collider ruby kaigi 2011
Andrew Grimm
Gws in fukuoka
Gws in fukuoka
Takuma Watabiki
TDDを研ぎ究める
TDDを研ぎ究める
pocketberserker
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
TDDを実践してわかったTDDつまづくあるあると自分なりの乗り越え方まとめ
Kei Sawada
The performance christens
The performance christens
kerygmaawards
Following jesus
Following jesus
kerygmaawards
Microsoft confidential document leaked
Microsoft confidential document leaked
Chanchal Jhanwar
Active learning
Active learning
Yoshihiro Furukawa
Semantic technologies
Semantic technologies
universe543
Tolerant and believers
Tolerant and believers
kerygmaawards
Microsoft confidential document leaked
Microsoft confidential document leaked
Chanchal Jhanwar
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
Yasui Tsutomu
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
seichi23
Introduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
Tdd is really dead ?
Tdd is really dead ?
Akira Suenami
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
Shou Takenaka
Hey It's Not My TDD!
Hey It's Not My TDD!
Yasui Tsutomu
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
makopi 23
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summer
Takuto Wada
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
Swift on Docker
Swift on Docker
sinsoku listy
Tddのすゝめ
Tddのすゝめ
将 高野
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
Takahiro Okada
Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)
Kohsuke Kawaguchi
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
Makoto Iguchi
Visual Studio App Centerで始めるCI/CD
Visual Studio App Centerで始めるCI/CD
Shinya Nakajima
More Related Content
Viewers also liked
The performance christens
The performance christens
kerygmaawards
Following jesus
Following jesus
kerygmaawards
Microsoft confidential document leaked
Microsoft confidential document leaked
Chanchal Jhanwar
Active learning
Active learning
Yoshihiro Furukawa
Semantic technologies
Semantic technologies
universe543
Tolerant and believers
Tolerant and believers
kerygmaawards
Microsoft confidential document leaked
Microsoft confidential document leaked
Chanchal Jhanwar
Viewers also liked
(7)
The performance christens
The performance christens
Following jesus
Following jesus
Microsoft confidential document leaked
Microsoft confidential document leaked
Active learning
Active learning
Semantic technologies
Semantic technologies
Tolerant and believers
Tolerant and believers
Microsoft confidential document leaked
Microsoft confidential document leaked
Similar to Tddワークショップ
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
Yasui Tsutomu
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
seichi23
Introduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
Tdd is really dead ?
Tdd is really dead ?
Akira Suenami
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
Shou Takenaka
Hey It's Not My TDD!
Hey It's Not My TDD!
Yasui Tsutomu
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
makopi 23
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summer
Takuto Wada
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Go Sueyoshi (a.k.a sue445)
Swift on Docker
Swift on Docker
sinsoku listy
Tddのすゝめ
Tddのすゝめ
将 高野
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
Takahiro Okada
Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)
Kohsuke Kawaguchi
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
Makoto Iguchi
Visual Studio App Centerで始めるCI/CD
Visual Studio App Centerで始めるCI/CD
Shinya Nakajima
FlexUnit4でテスト駆動開発
FlexUnit4でテスト駆動開発
theworldinunion
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
TDDBC横浜3rd
TDDBC横浜3rd
Yasui Tsutomu
リファクタリング読書会20120220
リファクタリング読書会20120220
Suguru Shirai
Visual Studio App Centerの始め方
Visual Studio App Centerの始め方
Shinya Nakajima
Similar to Tddワークショップ
(20)
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
TDDってなんなの?(What is TDD)
TDDってなんなの?(What is TDD)
Introduction to Continuous Testing
Introduction to Continuous Testing
Tdd is really dead ?
Tdd is really dead ?
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
自社開発プロダクト ALL-IN で行っている単体テストのパフォーマンスチューニングTips
Hey It's Not My TDD!
Hey It's Not My TDD!
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
『はじめてのClojure』勉強会#3 第7章:テスト、テスト、テスト
Emergent Design - ObLove 2009 summer
Emergent Design - ObLove 2009 summer
Sue445 Style TDD #atest_hack
Sue445 Style TDD #atest_hack
Swift on Docker
Swift on Docker
Tddのすゝめ
Tddのすゝめ
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
レガシーコード改善ガイド 第7章 いつまでたっても変更作業が終わりません
Hudson (JJUG CCCにて)
Hudson (JJUG CCCにて)
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
分散開発チームによるAgile開発実践 ~いろいろハマった!よかった
Visual Studio App Centerで始めるCI/CD
Visual Studio App Centerで始めるCI/CD
FlexUnit4でテスト駆動開発
FlexUnit4でテスト駆動開発
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDBC横浜3rd
TDDBC横浜3rd
リファクタリング読書会20120220
リファクタリング読書会20120220
Visual Studio App Centerの始め方
Visual Studio App Centerの始め方
Recently uploaded
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
Recently uploaded
(9)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
Tddワークショップ
1.
TDDワークショップ 古川 剛啓 http://www.flickr.com/photos/utest/5609991407
2.
デバックってどうやってますか? http://www.flickr.com/photos/porsupah/2577287047
3.
バグ混入 バグ顕在化 バグ発見
バグFix Td Tfind Tfix 時間 今までのプログラミング (Debug Later Programming) バグが混入してから顕在化するまでに時間が掛かると、バグ がある場所を探すまでに時間が掛かる
4.
バグ混入 バグ顕在化 バグ発見
バグFix Td Tfind Tfix 時間 テスト駆動開発 (Test Driven Development) バグ混入から顕在化するまでの時間を短くし、 バグがある場所を探すまでの時間を短縮する
5.
プロジェクト終盤でありがちな状況 ✓単体テストを省略した ✓いつの間にかテストが壊れている ✓テストが直ぐ壊れるのでテストする のをやめた ✓テストに時間が掛かるのでテストし てない http://www.flickr.com/photos/bagger2009/3630270346
6.
テキスト
7.
8.
9.
10.
http://www.flickr.com/photos/kazk/198640938 ユニットテストフレームワークを使う JUnit, Google Test,
CppUTest・・・ Mockフレームワークを使う jMock, GMock・・・
11.
と言うことで・・・
12.
Google Testをインストールしてみよう http://code.google.com/p/googlemock/ • 以下のサイトからGoogle
Mockのソースを ダウンロードする(Google Testのソースも 含まれている) • zipファイルを適当な場所に解凍する • READMEに従って、ビルド&インストール
13.
14.
テストメソッドを書く テストをPassする最低限 のコードを実装する リファクタリング Red ー
Green ー リファクタリング サイクル
15.
例:FizzBuzz問題を考える FizzBuzzクラスのfizzBuzzメソッド • 引数が3の倍数の時、”Fizz”を返す • 引数が5の倍数の時、”Buzz”を返す •
引数が3と5の公倍数の時、”FizzBuzz”を返す • それ以外の時、引数の整数を文字列にして返す
16.
例:FizzBuzz問題を考える Step 1 テストメソッド 3の時、”Fizz”が返される事を確認する std::string judgeFizzBuzz(
int i ) { return “Fizz”; } TEST_F(fizzBuzzTest, returnFizzWhenNumberIsThree_3) { EXPECT_EQ("Fizz", sut_->judgeFizzBuzz(3)); }
17.
例:FizzBuzz問題を考える Step 2 テストメソッド 5の時、”Buzz”が返される事を確認する std::string judgeFizzBuzz(
int i ) { if( i == 3 ) return “Fizz”; if( i == 5 ) return “Buzz”; } TEST_F(fizzBuzzTest, returnBuzzWhenNumberIsFive_5) { EXPECT_EQ("Buzz", sut_->judgeFizzBuzz(5)); }
18.
例:FizzBuzz問題を考える Step 3 テストメソッド 3の倍数の時、”Fizz”が返される事を確認する std::string judgeFizzBuzz(
int i ) { if( i % 3 == 0 ) return “Fizz”; if( i == 5 ) return “Buzz”; } TEST_F(fizzBuzzTest, returnFuzzWhenNumberIsSix_6) { EXPECT_EQ("Fizz", sut_->judgeFizzBuzz(6)); }
19.
例:FizzBuzz問題を考える Step 4 リファクタリング(引数名の変更) std::string judgeFizzBuzz(
int number ) { if( number % 3 == 0) return “Fizz”; if( number == 5 ) return “Buzz”; }
20.
例:FizzBuzz問題を考える Step n (完成) std::string
judgeFizzBuzz( int number ) { std::stringstream returningString( "" ); if( number < 0 ) { std::string exceptionMessage( "Number is minus." ); throw exceptionMessage; } else if( number == 0 ) return ""; else if( number % 15 == 0 ) return "FizzBuzz"; else if( number % 3 == 0 ) return "Fizz"; else if( number % 5 == 0 ) return "Buzz"; else { returningString << number; return returningString.str(); } }
21.
TDDの利点 • テストカバレッジが向上する • テスタビリティが向上する •
メソッドや構造をシンプルに保つことが出来る • 書いたコードに自信が持てる • テストメソッドを読めばメソッドの使い方が分かる • その他 Titter #TDDやっててよかったのまとめ http://togetter.com/li/258537 等
22.
継続的にTDDをやるための材料 • 単体テストは設計(実装)の一部だと理解する • 単体テストフレームワークを使用する •
テストコードも構成管理する • テストカバレッジを「Doneの定義」に含める • CI (Continuous Integration)サーバを導入する http://www.flickr.com/photos/roboppy/312248677
23.
最後に • TDD は簡単なプラクティスではありません。 •
しかし、コード品質は確実に向上します。 • 一度や二度の失敗で諦めずに取り組みましょう。 継続は、力なり http://www.flickr.com/photos/picsbyperi/7457301384
Download now