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
1
98
Distributed testing on Rails
Kostas Karachalios
November 30, 2012
Tweet
Share
Other Decks in Programming
See All in Programming
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
190
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
410
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
7
3.1k
[SF Ruby, March 2024] Rails on Wasm
palkan
0
370
Folding Cheat Sheet #2
philipschwarz
PRO
0
110
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
230
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
390
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
480
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.2k
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
840
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
Featured
See All Featured
Being A Developer After 40
akosma
56
580k
Atom: Resistance is Futile
akmur
258
25k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
23
2k
Side Projects
sachag
451
41k
Visualization
eitanlees
135
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
36
2.5k
What's in a price? How to price your products and services
michaelherold
237
11k
Into the Great Unknown - MozCon
thekraken
10
980
Embracing the Ebb and Flow
colly
78
4.1k
Designing for humans not robots
tammielis
247
25k
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