Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Test Driven Development
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Jun Lin
July 18, 2013
Programming
54
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Test Driven Development
Jun Lin
July 18, 2013
More Decks by Jun Lin
See All by Jun Lin
A brief introduction to GenStage
linjunpop
1
60
Microservices
linjunpop
0
92
Actor Model
linjunpop
0
37
Ruby for iOS developer
linjunpop
0
1k
A brief introduction to GitHub
linjunpop
1
72
Ruby 2.0
linjunpop
1
170
Other Decks in Programming
See All in Programming
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
どこまでゆるくて許されるのか
tk3fftk
0
520
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
820
関数型プログラミングのメリットって何だろう?
wanko_it
0
180
OSINT for SRE: 学術論文とポストモーテムから探る システム障害の共通パターン / SRE NEXT 2026
tomoyk
1
4.1k
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
180
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
初めてのKubernetes 本番運用でハマった話
oku053
0
130
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
400
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
410
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How to train your dragon (web standard)
notwaldorf
97
6.7k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Facilitating Awesome Meetings
lara
57
7k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
440
Transcript
TDD Thursday, July 18, 13
WHY TDD Thursday, July 18, 13
AVOID CHAOS Thursday, July 18, 13
TIME Thursday, July 18, 13
WHAT IS TDD Thursday, July 18, 13
TEST DRIVEN DEVELOPMENT Thursday, July 18, 13
WRITE TEST FAIL IMPLEMENT TEST PASS Thursday, July 18, 13
BENEFITS Thursday, July 18, 13
MODULARIZED FLEXIBLE EXTENSIBLE Thursday, July 18, 13
WRITTEN FOR TESTABILITY Thursday, July 18, 13
TESTS FOR EVERY FEATURE GET WRITTEN Thursday, July 18, 13
DEEPER UNDERSTANDING OF REQUIREMENTS Thursday, July 18, 13
EXAMPLES Thursday, July 18, 13
subject(:hero) { Hero.first } it "carries a sword" do hero.equipment.should
include "sword" end http://betterspecs.org/ Thursday, July 18, 13
#import "TestHelper.h" #import "UserModel.h" SpecBegin(UserModel) describe(@"UserModel", ^{ describe(@".all", ^{ it(@"load
all users", ^{ expect([UserModel all]).toNot.beEmpty(); }); }); }); SpecEnd https://github.com/linjunpop/Diamond/blob/master/DiamondTests/UserModelSpec.m Thursday, July 18, 13
PROBLEMS Thursday, July 18, 13
UI TESTS Thursday, July 18, 13
OVER-TESTING Thursday, July 18, 13
CODE ONLY FOR TESTING Thursday, July 18, 13
CONTINUOUS INTEGRATION Thursday, July 18, 13
CHECKOUT BRANCH COMMIT CI RUN PASS MERGE TO MASTER FAIL
PUSH Thursday, July 18, 13
WHY CI Thursday, July 18, 13
AUTOMATION Thursday, July 18, 13
MULTIPLE RUNTIME ENVIRONMENT Thursday, July 18, 13
script: 'ci/travis.rb' before_install: - gem install bundler rvm: - 1.9.3
- 2.0.0 env: - "GEM=railties" - "GEM=ap,am,amo,as,av" - "GEM=ar:mysql" - "GEM=ar:mysql2" - "GEM=ar:sqlite3" - "GEM=ar:postgresql" notifications: email: false irc: on_success: change on_failure: always channels: - "irc.freenode.org#rails-contrib" campfire: on_success: change on_failure: always https://github.com/rails/rails/blob/master/.travis.yml Thursday, July 18, 13
MULTIPLE DEVICE MODELS Thursday, July 18, 13
Thursday, July 18, 13
LET SERVER DO HEAVY-LIFTING Thursday, July 18, 13
iOS CI SINCE Xcode 5 Thursday, July 18, 13
OS X MAVERICKS OS X SERVER XCODE 5 Thursday, July
18, 13
DEMO TIME Thursday, July 18, 13
REFERENCES • http://37signals.com/svn/posts/3159-testing-like-the-tsa • http://en.wikipedia.org/wiki/Test-driven_development • http://stackoverflow.com/a/153565 Thursday, July 18,
13