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
full test also want to end within 50ms
Search
Tatasuro Hisamori
September 21, 2013
Technology
11
7.6k
full test also want to end within 50ms
Tatasuro Hisamori
September 21, 2013
Tweet
Share
More Decks by Tatasuro Hisamori
See All by Tatasuro Hisamori
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
11
4.6k
Perl and Riak
myfinder
2
3.4k
Other Decks in Technology
See All in Technology
いま注目しているデータエンジニアリングの論点
ikkimiyazaki
0
570
SoccerNet GSRの紹介と技術応用:選手視点映像を提供するサッカー作戦盤ツール
mixi_engineers
PRO
1
160
Railsアプリケーション開発者のためのブックガイド
takahashim
13
5.9k
AI ReadyなData PlatformとしてのAutonomous Databaseアップデート
oracle4engineer
PRO
0
140
成長自己責任時代のあるきかた/How to navigate the era of personal responsibility for growth
kwappa
3
220
Why React!?? Next.jsそしてReactを改めてイチから選ぶ
ypresto
10
4.1k
いまさら聞けない ABテスト入門
skmr2348
1
180
職種別ミートアップで社内から盛り上げる アウトプット文化の醸成と関係強化/ #DevRelKaigi
nishiuma
2
120
ZOZOのAI活用実践〜社内基盤からサービス応用まで〜
zozotech
PRO
0
140
Flaky Testへの現実解をGoのプロポーザルから考える | Go Conference 2025
upamune
1
390
後進育成のしくじり〜任せるスキルとリーダーシップの両立〜
matsu0228
2
1.1k
PythonとLLMで挑む、 4コマ漫画の構造化データ化
esuji5
1
120
Featured
See All Featured
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Unsuck your backbone
ammeep
671
58k
It's Worth the Effort
3n
187
28k
Typedesign – Prime Four
hannesfritz
42
2.8k
KATA
mclloyd
32
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Transcript
ϑϧςετ NTͰऴΘΒ͍ͤͨ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
:"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz ςετڥͱ$* 139݄22༵
U6UJMT full test also want to end within 50ms •
ςετΛḿΒͤΔϢʔςΟϦςΟ • ଓઌDBΛςετ༻ʹஔ͖͑Δ • ςετຖʹىಈ͢Δmemcachedͷport൪߸Λஔ͖͑ Δ • ͳͲɺPerlҎ֎ͷϛυϧΣΞ࿈ܞΛαϙʔτ͢Δ 139݄22༵
UVUJMT.BLF)FMQFS full test also want to end within 50ms •
ϔϧύϞδϡʔϧ • खݩͰmake testΛΒͤΔ࣌ʹTest::PrettyʹΓସ͑ͨ ͍ͳͲͷཁٻΛٵऩ͢Δ • runtests ʹςετҰཡΛ͢લʹγϟοϑϧ͢Δ • ͳͲͷॲཧΛߦ͏ 139݄22༵
UVUJMT.BLF)FMQFS full test also want to end within 50ms •
ςετ࣮ߦॱংͷγϟοϑϧ • ͓͢͢Ί • Βͳ͍ؒʹॱংʹґଘ͢ΔςετΛॻ͍ͯ͠·ͬͯ ؾ͚ͮΔ • DBͷcleanup࿙Ε͕ൃੜ͢Δͷʹؾ͔ͮͳ͍έʔε • ಉ͡ϑΝΠϧ໊Λҧ͏ςετ͔Βࢀর͢Δέʔε 139݄22༵
:"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 6LJHVNPͱͷ͖͍ͭ͋ 139݄22༵
• ಛʹखೖΕͤͣͦͷ··ར༻ • ͦͷඞཁͳ͍ͷͰ 6LJHVNP4FSWFS full test also want to
end within 50ms 139݄22༵
• ར༻͍ͯ͠ͳ͍ • ಠࣗͷ࣮Λͯ͠·͢ 6LJHVNP$MJFOU full test also want to
end within 50ms 139݄22༵
• CIΛ։࢝͢ΔͨΊͷΈ • ςετະ࣮ߦͷϒϥϯνΛ୳࣮ͯ͠ߦ • SQLiteʹ࣮ߦͨ͠ϒϥϯν໊/ϦϏδϣϯΛه • ςετ݁ՌΛUkigumo::ServerҎ֎ʹpost͢Δ • ࠓͷͱ͜Ζϝʔϧ͘Β͍
'0VU5FTUFS full test also want to end within 50ms 139݄22༵
:"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz ૿͑ͨςετͷ࣮ߦߴԽ 139݄22༵
• ͔͔࣌ؒΓ͗͢ • ϒϥϯν͕͍ͭ͋͘Δͱ݁Ռ͕Θ͔Δ·Ͱͨ͞ΕΔ • ϝϯόʔ / ։ൃҊ͕݅૿͑Ε૿͑Δ΄Ͳͨ͞ΕΔ • ͨ͞Εͨʹ
fail ͱ͔ͯͨ͠ΒΔؾ͕ͳ͘ͳΔ • ࣄނϦεΫ͕ߴ·Δ • ʮ͍͔ΒखݩͰमਖ਼͚ͨͩ͠ςετͯ͠ϦϦʔεʯ • ͦͯ͠୭ϑϧςετΛ͠ͳ͘ͳͬͯ… full test also want to end within 50ms 139݄22༵
εέʔϧ͢Δ ΓํʹมΘΔඞཁ͕͋Δ full test also want to end within 50ms
139݄22༵
ߴԽʹ͋ͨͬͯ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
• طଘͷςετΛॻ͖͑ͳ͍ • ॻ͔Εͨςετ͕ͦͷ··ಈ͘͜ͱ • طଘͷCIαʔόͱੑ͕ߴ͍ • Ukigumo::Server ܧଓ͍͍ͯͨ͠ •
εέʔϧ͢Δ͜ͱ • ςετ͕10ഒʹͳͬͯػೳ͢ΔΈͰ͋Δ͜ͱ ߴԽͷલఏ full test also want to end within 50ms 139݄22༵
• ࢄ࣮ߦͤ͞Δ • ෳͷαʔόͰࢄ࣮ߦ͠ɺϊʔυՃͰεέʔϧ͢Δ Α͏ʹ͍ͨ͠ • αʔόͷՃ/ϝϯς͕༰қ • ؆୯ͳconfigͰཧͯ͠ΏΔ;ΘʹՃ/ϝϯς͍ͨ͠ •
࠶࣮ߦ؆୯ʹग़དྷΔΑ͏ʹ͍ͨ͠ • ෳͷαʔόʹ͛ΔͷͰɺ͕͋ͬͨ࣌ʹ࠶࣮ߦ Λ͙͢Ͱ͖ΔΑ͏ʹ͍ͨ͠ ࣮ํ full test also want to end within 50ms 139݄22༵
ࢄ࣮ߦͷΈ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
Ϛελϊʔυ Ϋϥελϊʔυ 'test1.t' 'test2.t' 'test3.t' 'test4.t' 'test5.t' 'test6.t' ࣮ߦରςετ 'test1.t',
'test6.t' 'test2.t', 'test4.t' 'test3.t', 'test5.t' ࢄ࣮ߦͷΈ full test also want to end within 50ms 139݄22༵
• ςετͷϐοΫΞοϓ/γϟοϑϧ/ׂ • File::Find, List::MoreUtils Ͱऔಘͯ͠Ϋϥελʹׂ • Ϋϥελϊʔυͷ࣮ߦ໋ྩ /݁Ռडऔ •
Parallel::ForkManager, Net::OpenSSH Ͱฒྻ࣮ߦ • ݁Ռͷύʔεͱ Ukigumo ͷ post • failͷΧϯτ, LWP Ͱ post • ࣮ߦ • ϊʔυଆͰ TAP::Harness::runtests ʹςετΛ࣮ͯ͠ߦ ࣮ full test also want to end within 50ms 139݄22༵
࠶࣮ߦ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
• ϚελϊʔυͰ࠶࣮ߦWebAppΛىಈ • ࣮ࢪঢ়گΛอଘ͍ͯ͠ΔSQLite͔Β֘ϒϥϯνใΛ ফ͚ͩ͢ • Chrome ֦ுͰ Ukigumo ʹϘλϯՃ
• Ukigumo ͦͷͷʹखΛೖΕͨ͘ͳ͍ ࣮ full test also want to end within 50ms 139݄22༵
݁Ռ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
ߴԽͷ݁Ռ full test also want to end within 50ms OPEF
TFDT ˣ OPEF TFD 139݄22༵
• ૉʹαʔόΛͤεέʔϧ͢Δ • αʔόΛηοτΞοϓͯ͠ɺ୯ಠͰmake test͕௨ΕΫ ϥελʹೖՄೳ -‐> PuppetͰOK • ࠶࣮ߦϘλϯ͕ؾܰʹԡͤΔ
• ͍͍ͩͨ180ඵͰ݁Ռ͕ฦͬͯ͘ΔͷͰɺԿΒ͔ͷࣦഊ ͕͙͋ͬͯ͢࠶࣮ߦͰ͖Δ • खݩͰΔΑΓpushͨ͠΄͏͕͍ • ଞͷਓͷ։ൃΞΫςΟϏςΟ͕ݟ͑͘͢ͳΔ ݁Ռ full test also want to end within 50ms 139݄22༵
• “खݩͰΔΑΓpushͨ͠΄͏͕͍” • ʮͱΓ͋͑ͣpush͢ΔʯΈ͍ͨͳจԽʹ͚Δ • νʔϜϝϯόʔʹର͢ΔποίϛϏϦςΟ্͕͕Δ • ݁Ռɺ࣭ͷ্͕ਤΕΔ خ͍͠ޡࢉ full
test also want to end within 50ms 139݄22༵
خ͍͠ޡࢉ full test also want to end within 50ms ߴͳςετ
։ൃจԽΛม͑Δ 139݄22༵
͓ΘΓʹ͏ͻͱͭ :"1$"TJBlGVMMUFTUBMTPXBOUUPFOEXJUIJONTz 139݄22༵
ςετ ͲΜͲΜॻ͜͏ ͓ΘΓʹ 139݄22༵
͓ΘΓʹ 139݄22༵
͏QVTIຖʹ ϑϧςετ͠Α͏ ͓ΘΓʹ 139݄22༵
͓ΘΓʹ full test also want to end within 50ms ߴͳςετ
։ൃจԽΛม͑·͢ 139݄22༵