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
Distributed testing on Rails
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kostas Karachalios
November 30, 2012
Programming
110
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Distributed testing on Rails
Kostas Karachalios
November 30, 2012
Other Decks in Programming
See All in Programming
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
AI 輔助遺留系統現代化的經驗分享
jame2408
1
970
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
12
6.2k
Oxcを導入して開発体験が向上した話
yug1224
4
340
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
200
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
350k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.5k
dRuby over BLE
makicamel
2
390
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.7k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
270
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Speed Design
sergeychernyshev
33
1.9k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Bash Introduction
62gerente
615
220k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Become a Pro
speakerdeck
PRO
31
6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Transcript
DR. KOWALSKI OR: HOW I LEARNED TO STOP WAITING AND
LOVED THE TESTS
skroutz.gr
37,640 LINES OF CODE
8,414 SPEC EXAMPLES 1:1.4 CODE TO TEST RATIO
28 MINUTES TO RUN (ORIGINALLY)
16 DEVELOPERS ALL WANTING TO DEPLOY SOMETHING
5-25 DEPLOYS PER DAY EACH ONE HAS TO BE TESTED
PARTIAL TESTING NOT A SOLUTION
THE "PLAN"
DISTRIBUTED TESTING PARTLY CUSTOM
FAST TEST RESULTS LESS THAN 5 MINUTES
USE OUR HARDWARE PIGGYBACK ON DEVELOPER MACHINES
WHY CUSTOM? WHY NOT?
FOR UNIQUENESS YOU ARE A PRETTY LITTLE SNOWFLAKE
FOR UNIQUENESS YOU ARE A PRETTY LITTLE SNOWFLAKE •Databases (MySQL,
MongoDB, etc) •External services (Elastic) •Intelligently distribute specs to Hydras •Nothing works “out of the box” •We don’t want VMs into our developer machines
FOR GREAT SPEED FROM 28 MINUTES TO 4 AND A
HALF
FOR GREAT SPEED FROM 28 MINUTES TO 4 AND A
HALF Workers Time Speed (ex/min) 1 28:37 294 2 17:03 493 3 12:07 694 4 10:18 817 5 8:51 951 6 7:24 1,137 7 6:24 1,314 8 5:46 1,460 9 5:23 1,565 10 4:59 1,688 11 4:40 1,803
FOR GREAT SPEED FROM 28 MINUTES TO 4 AND A
HALF 0 7.5 15 22.5 30 1 2 3 4 5 6 7 8 9 10 11 0 500 1,000 1,500 2,000 Time in minutes Examples per minute Time Speed
FOR HINDSIGHT WEEKS OF TEST RESULTS AVAILABLE FOR REVIEW
FOR HINDSIGHT WEEKS OF TEST RESULTS AVAILABLE FOR REVIEW •We
are approaching 5,000 builds of the master branch •Identify “Heisenspecs” •Generate statistics
FOR FUN! DISTRIBUTED PROCESSING IS A BITCH
FOR FUN! DISTRIBUTED PROCESSING IS A BITCH •Yes, we do
love a challenge
HOW? THE MAIN COMPONENTS
WHO IS JENKINS? KNOWS WHAT WENT BAD, COMPLAINS CONSTANTLY
WHO IS JENKINS? KNOWS WHAT WENT BAD, COMPLAINS CONSTANTLY •Java
web application •Monitors git for changes •Keeps track of builds •Can’t do proper distributed testing •Fires up Kowalski
WHO IS KOWALSKI? BEHIND THE SCENES, GIVES COMMANDS
WHO IS KOWALSKI? BEHIND THE SCENES, GIVES COMMANDS •Splits spec
files into chunks •Feeds them to the Hydras •Gathers the output •Reports to Jenkins
WHO IS THE HYDRA? "DEMOCRATIZES" YOUR RESOURCES
WHO IS THE HYDRA? "DEMOCRATIZES" YOUR RESOURCES •A user in
each developer’s machine •Local binaries for services (SQL, MongoDB, Elastic etc) •Reports to Kowalski •Limited to 1 CPU core
BITS & PIECES COMPLETING THE IMAGE
GITLAB INTEGRATION WHICH GIT COMMITS FAILED THE BUILD?
WALL DISPLAY WHAT'S GOING ON RIGHT NOW?
TMPFS/RAMFS THE SOLIDEST OF STATE FOR YOUR HDD
PERSONAL BUILDS EVERYONE CAN ORDER A BUILD OF THEIR OWN