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
Breaking the Flaky Test Cycle
Search
Shinichi Maeshima
September 09, 2023
Technology
2
2.1k
Breaking the Flaky Test Cycle
大阪Ruby会議03 (
https://rubykansai.github.io/osaka03/
) の発表スライドです。
Shinichi Maeshima
September 09, 2023
Tweet
Share
More Decks by Shinichi Maeshima
See All by Shinichi Maeshima
Sidekiq vs Solid Queue
willnet
14
11k
どうしてこうなった?から理解するActive Recordの関連の裏側
willnet
6
1.4k
Exceptional Rails
willnet
6
7.3k
mrskで広がるインフラの選択肢
willnet
1
1k
アプリケーションを長期にわたって無理なく運用するためのたったひとつの方法
willnet
2
2.1k
HotwireからDHHが考えるこれからのRailsとJSの付き合い方を知る
willnet
14
13k
Rails6.1で新しく入る機能について
willnet
12
16k
Concerns about Concerns
willnet
11
34k
Clean Test Code Revised
willnet
34
18k
Other Decks in Technology
See All in Technology
SSH公開鍵認証による接続 / Connecting with SSH Public Key Authentication
kaityo256
PRO
2
220
17年のQA経験が導いたスクラムマスターへの道 / 17 Years in QA to Scrum Master
toma_sm
0
400
モノリスの認知負荷に立ち向かう、コードの所有者という思想と現実
kzkmaeda
0
110
Restarting_SRE_Road_to_SRENext_.pdf
_awache
0
160
モンテカルロ木探索のパフォーマンスを予測する Kaggleコンペ解説 〜生成AIによる未知のゲーム生成〜
rist
4
1.1k
Vision Language Modelを活用した メルカリの類似画像レコメンドの性能改善
yadayuki
9
1.2k
Compose MultiplatformにおけるiOSネイティブ実装のベストプラクティス
enomotok
1
210
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略
ryu955
2
400
初めてのPostgreSQLメジャーバージョンアップ
kkato1
0
410
SpannerとAurora DSQLの同時実行制御の違いに想いを馳せる
masakikato5
0
570
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
930
Go製のマイグレーションツールの git-schemalex の紹介と運用方法
shinnosuke_kishida
1
410
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Embracing the Ebb and Flow
colly
85
4.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Git: the NoSQL Database
bkeepers
PRO
429
65k
For a Future-Friendly Web
brad_frost
176
9.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
It's Worth the Effort
3n
184
28k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
12
1.4k
Optimising Largest Contentful Paint
csswizardry
35
3.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
The Language of Interfaces
destraynor
157
24k
Transcript
!XJMMOFU #SFBLJOHUIF'MBLZ 5FTU$ZDMF
Shinichi Maeshima @netwillnet @willnet https://blog.willnet.in Willnet Inc.
ٕज़ސۀΛ͍ͯ͠·͢
͓ࣄ4/4తͳͷΛ։ൃ ͍ͯ͠·͢
!XJMMOFU #SFBLJOHUIF'MBLZ 5FTU$ZDMF ࠓ'MBLZͳςετͷ Ͱ͢
'MBLZͳςετͱʁ w ࣮ߦ݁Ռ͕ෆ҆ఆͳςετ w ݪҼ༷ʑ w &&ςετͰΫϦοΫ࠲ඪΛؒҧ͑ͨ w ςετ࣌ͷมߋΛ͢ͷΛΕ͍ͯͨ w
࣮ߦ͢Δ࣌ؒʹΑࣦͬͯഊ͢Δ w PSEFSCZ͕͍͍ͭͯͳ͍ΫΤϦൃߦ
'MBLZͳςετ͕͋ ͬͨΒͲ͏͢Δʁ
None
௨Δ·Ͱ࠶࣮ߦ
🙅
ؾ࣋ͪΘ͔Δ͚Ͳʜ w $*͕௨Δ·Ͱ͍ͬͯΔؒͷ࡞ۀ͕Δ😩 w $*࣮ߦ࣌ؒɺΤϯδχΞͷɺςετͷࣦഊͦΕͧΕʹ ൺྫͯ͠Δ w ผͷ͜ͱΛ͍ͯͯ͠εΠονϯάίετ͕͔͔Δͧ w $*αʔϏεͷ՝ֹۚ૿͑Δ💰
w ςετ͕ΦΦΧϛগԽ͢Δ🐺 w ຊ࣮͕ѱͯ͘࠶࣮ߦͰ௨ͬͯ͠·ͬͨΒεϧʔ͞ Εͯ͠·͏
؇ࡦ
IUUQTIBOBDIJOIBUFCMPKQFOUSZ
ࣦഊͨ͠ςετͷ࠶࣮ߦΛ ϫʔΫϑϩʔʹΈࠐΉ
͋͘·Ͱ؇ࡦ
ࠜຊղܾ͍ͨ͠ʂ
IUUQTCMPHXJMMOFUJOFOUSZ
ཁ͢Δͱ w ςετࣦഊ࣌ͷৼΔ͍ΛௐΔ ϩάɺεΫγϣɺσό οΨʹΑΔϒϨʔΫϙΠϯτͳͲ w ςετ͕Ͳ͏ಈ͍͍ͯΔͷ͔͓ͬͯ͘ඞཁ͕͋Δͧ w 3BJMTΛΖ͏
w ςετͷઃఆΛΖ͏ w DBQZCBSB TFMFOJVN ͕Ͳ͏ಈ͍͍ͯΔͷ͔Ζ͏
ݱঢ়ɺGMBLZ ςετͷݪҼΛ ௐࠪ͢Δʹ෯ ͍͕ࣝඞཁ
݁Ռͱͯ͠ γχΞΤϯδχΞ ʹࣄ͕ूத͢Δ
γχΞΤϯδχΞଞͷ ࣄ͋ΔͷͰͳ͔ͳ͔ GMBLZςετݮΒͳ͍
ͭΒ͍
ΈͰঢ়گΛม͑ ͍ͨ
ࣗͷ࡞ͬͨΈɺଞ ͷਓ͕࡞ͬͨΈͰศ རͳͷΛհ͠·͢
Έ
GMBLZςετ Λ͙Έ
GMBLZͷݪҼͷ Ұͭ ΫϦοΫϛε
$BQZCBSB͕ཁૉΛΫϦοΫ͢Δ·Ͱ w ΫϦοΫ͍ͨ͠ཁૉͷ࠲ඪΛௐΔ w ͜͜ʹগ͠λΠϜϥά͕͋Δ w ௐͨ࠲ඪΛΫϦοΫ͢Δ
%0.ཁૉ͕ಈ͘ͱ ΫϦοΫʹࣦഊ͢ Δ͜ͱ͕͋Δ
$BQZCBSBEJTBCMF@BOJNBUJPOUSVF
IUUQTHJUIVCDPNUFBNDBQZCBSBDBQZCBSBCMPCBCGFBCCCFGDDDDGDMJCDBQZCBSBTFSWFSBOJNBUJPO@EJTBCMFSSC--
DTTͱK2VFSZ ىҼͷΞχϝʔ γϣϯΛΦϑʹ ͢Δ
K2VFSZҎ֎ͷ KTʹΑΔΞχϝʔ γϣϯະରԠ😇
5*14։ൃڥͰDBQZCBSBͷΞχ ϝʔγϣϯΦϑ͕ޮ͍͍ͯΔ͔ࢼ͢ w (FN fi MFͷDBQZCBSBͷHSPVQΛมߋͯ͠EFWFMPQNFOUͰ ༗ޮʹ͢Δ w DPO fi
HBQQMJDBUJPOSCʹҎԼΛه
ଞʹ%0.ཁ ૉΛಈ͔͕͢ ͋Δ
🏞
ը૾ͷ Ԇ ಡΈࠐΈλ ΠϛϯάͱΫϦοΫͷλ Πϛϯά͕Ұக͢Δͱ☠
XJMMOFUDBQZCBSBXBJU@JNBHF
None
HFNΛಋೖ͢Δͩ ͚Ͱɺը૾ͷಡΈࠐ ΈىҼͷΫϦοΫϛ ε͕ແ͘ͳΔ
Έ
ָʹௐࠪͰ͖ΔΈ
$*ͷΈ͔ͭكʹ͔͠ ى͖ͳ͍GMBLZςε τௐࠪͰେࣄͳͷ
ϩά
Ͱ֘ͷςε τͷϩά͕ຒ Εͯ͠·͏
XPSLBSPVOE
.#͑ΔΑ͏ͳϩά ͔ΒHSFQ͢Δͷ͍ͨΜ
XJMMOFUDJ@MPHHFS
ࣦഊͨ͠ςε τͷϩά͚ͩ ग़ྗͰ͖Δ
࣍
&&ςετࣦഊ࣌ͷε ΫϦʔϯγϣοτ ௐࠪ࣌ʹ༗ޮ
$ZQSFTT 1MBZXSJHIUΛ͏ͱಈ ըͰϒϥβͷಈ࡞Λ ݟΔ͜ͱ͕Ͱ͖ͯศར
͍͍ͨͪͨ
:VTVLF*XBLJ DBQZCBSBQMBZXSJHIU ESJWFS
υϥΠόΛม͑ͣ ʹಈըΛࡱΓ͍ͨ
ZZBHJUFTUSFDPSEFS
TFMFOJVNͰಈը͕ࡱΕ Δ DVQSJUFͷํ͓· ͍ͪͩ͘͞
ͨͩ͠ɺςετ͕ޭ͠ ͯৗʹεΫγϣ͔Βಈ ըΛੜ͢Δඞཁ͕͋Δ
ςετ͕ޭͯ͠d ׂͷΦʔόʔϔου͕͋ Δ UFTUSFDPSEFS
ϓϩδΣΫτʹΑͬͯΦ ʔόϔουΛݮΒ͕͢ ඞཁ͔ ྫಈըࡱӨΛ GMBLZͳςετ͚ͩΛର ʹ͢Δ
·ͱΊ
ͨ͜͠ͱ w fl BLZςετͰফ͢ΔͷΛΈͰղܾ͍ͨ͠ w fl BLZςετΛ͙Έ w &&ςετͰΫϦοΫ࣌ʹը૾ىҼͰཁૉ͕ಈ͔ͳ͍Α͏ʹ ͭΈΛಋೖ
DBQZCBSBXBJU@JNBHF w fl BLZςετΛָʹௐࠪ͢ΔΈ w ςετࣦഊ࣌ͷΈϩάΛग़ྗ͢ΔΈ DJ@MPHHFS w ςετࣦഊ࣌ʹಈըͰϒϥβͷڍಈΛ֬ೝͰ͖ΔΈ DBQZCBSBQMBZXSJHIUESJWFS UFTUSFDPSEFS
·ͩ·ͩվળͰ͖Δ ༨͋Δ
ΈΜͳͰΈΛ࡞ ͍͖ͬͯ·͠ΐ͏ʂ
GMBLZςετΛݮΒͯ͠ɺ ΞϓϦέʔγϣϯίʔυʹ ͖߹͏࣌ؒΛ૿͍ͨ͠
Զͨͪͷઓ͍͜Ε ͔Βͩʂ