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
Kostas Karachalios
November 30, 2012
Programming
120
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
React本体のコードリーディング
high_g_engineer
1
160
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
250
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.1k
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
130
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
200
Dockerfile CMD for Node.js
grazie1999
0
140
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
250
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
540
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.8k
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
240
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
220
Go 1.27 における memory allocation の高速化
andpad
0
340
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
240
Crafting Experiences
bethany
1
270
Building a Scalable Design System with Sketch
lauravandoore
463
34k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Paper Plane
katiecoart
PRO
2
53k
How to build a perfect <img>
jonoalderson
1
5.9k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
670
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
450
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
950
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
480
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