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
1
100
Distributed testing on Rails
Kostas Karachalios
November 30, 2012
Tweet
Share
Other Decks in Programming
See All in Programming
高速開発のためのコード整理術
sutetotanuki
1
390
CSC307 Lecture 06
javiergs
PRO
0
680
Oxlint JS plugins
kazupon
1
830
dchart: charts from deck markup
ajstarks
3
990
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.3k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
CSC307 Lecture 03
javiergs
PRO
1
490
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
Data-Centric Kaggle
isax1015
2
770
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
170
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
670
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
300
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
250
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
240
Building AI with AI
inesmontani
PRO
1
690
Bash Introduction
62gerente
615
210k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
How GitHub (no longer) Works
holman
316
140k
Producing Creativity
orderedlist
PRO
348
40k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
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