Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Let's make this test suite run faster! - BeJUG
Search
dgageot
April 05, 2012
Programming
600
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Let's make this test suite run faster! - BeJUG
dgageot
April 05, 2012
More Decks by dgageot
See All by dgageot
Docker on Google Cloud Platform
dgageot
0
1.7k
Lightning Talk Mix-IT 2014
dgageot
0
810
CodeStory 2013 "La Selection Finale"
dgageot
0
780
Finale Code Story
dgageot
1
740
Le facilitateur, un rôle encore méconnu
dgageot
1
220
Mockito. Ecrire des tests unitaires est devenu simple.
dgageot
2
450
Git, la gestion de configuration qui vous veut du bien
dgageot
1
490
My own preferred testing techniques
dgageot
1
120
Let's make this test suite run faster
dgageot
1
88
Other Decks in Programming
See All in Programming
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
1.1k
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
510
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
820
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
290
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
120
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
3
1k
Next.js: The final boss of Web Performance
guaca
0
310
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
290
気持ちぃ〜角丸 Squircle
ryu1013
0
320
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
160
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
180
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
The browser strikes back
jonoalderson
0
1.8k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
540
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
830
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
750
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
330
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Technical Leadership for Architectural Decision Making
baasie
3
610
Design in an AI World
tapps
1
360
Transcript
Let's make this test suite run faster!
David Gageot Freelance developer @dgageot javabien.net
Why make a test suite run faster?
“ I firmly believe it can make your product better.
Faster to test leads to faster to write, deploy and use ” Anonymous bearded freelance developper
You test early and often. Right?
Continuous integration?
Continuous testing?
Continuous deployment?
Testing a lot can lead to waiting a lot
How wants his coding room to look like
Test suite duration can be contained
Jenkins slaves to the rescue
Jenkins slaves to the rescue. not.
Why complicated when it can be simple?
I’ll share a few easy tricks
“ I firmly believe it can make your product better.
Faster to test leads to faster to write, deploy and use ” Anonymous bearded freelance developper
How can we accelerate the tests? The Cheater The Lazy
The Cheater
Buy a faster machine. Tests are cpu/
Thank you Q/A
BUT single threaded tests get slower 0 25 50 75
100 2007 2008 2009 2010
Use all the cores with Maven3 mvn -T1 clean install
: 5:05s mvn -T4 clean install : 3:10s Beware of tests with side effects
It’s not just me
Use all the cores with JUnit/TestNG Beware of tests with
side effects
That’s it for cheaters No silver bullet
The Lazy
Delete useless tests It’s so simple, we don’t do it...
Even better, delete dead code
Even better, delete dead code Leads to deleting even more
useless tests
Work in a sandbox In-memory database H2 behaves much like
MySql As simple as changing an xml file The database is slow
It’s Not only SQL If going for NoSQL, choose a
server that can run in-process eg. Voldemort The network is slow
In-memory SMTP Server SubEtha SMTP
Abstract the filesystem Apache VFS (Virtual File System) Spring Resource...
In-memory everything As a bonus, tests will run smoother
Of course all of these are easier to setup at
the beginning of a project
The
5 minutes a day can make a difference
Don’t test business rules in integration Unit tests are often
a better place
Not the same scale of speed 10sec .01sec
Action #1 - Break the longer integration Into one faster
integration test and a lot of small
Action #2 - Mock the slowest layers Mocks are not
just for unit tests eg. with Spring and Mockito spies
Action #3 - Don’t test through the Selenium is often
overkill «But my application is complex!» «My users want complex features, My users want Ajax» «I need to test browser compatibility!»
Really?
Complexity has a cost That you pay each time tests
run
Test through the browser the strict Unit test Javascript
Action #4 - Sometimes be old school write (easier to
test) server-side code
Thank you Q/A
One more thing™ Action #0 - Simplify and optimize your
code Tests will run faster Keep that one secret...
Thank you Q/A