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
Snapshot Testingってやつがあってな at PHP勉強会
Search
Kazuki Higashiguchi
February 28, 2018
Technology
0
170
Snapshot Testingってやつがあってな at PHP勉強会
第123回 PHP勉強会@東京 で発表した祭の資料です。
https://qiita.com/Khigashiguchi/items/1c50105aff2c8acf45d5
Kazuki Higashiguchi
February 28, 2018
Tweet
Share
More Decks by Kazuki Higashiguchi
See All by Kazuki Higashiguchi
インフラコストとセキュリティ課題解決のためのリアーキテクチャリング / srekaigi2025
hgsgtk
3
5.1k
Design of a Stateful system for Robust Deployment and Observability
hgsgtk
0
1.2k
A guide to joining operational work in your new DevOps team
hgsgtk
1
1.4k
HTTP Tunneling in Go
hgsgtk
0
1.4k
ブラウザ自動操作技術の深層へ、直接触れて学ぶ WebDriver と Chrome DevTools Protocol
hgsgtk
3
6.5k
HTTP Server on random available port in Go
hgsgtk
0
990
Agile Testingを夢見たテスト自動化 〜ATDDへの挑戦から始まる 1年間の試行錯誤〜 / dreaming agile testing at basebank
hgsgtk
14
7.8k
Create Go WebDriver client from scratch
hgsgtk
1
2.2k
PHPでWeb Driver Clientを自作する〜己の手でブラウザ操作自動化を完全理解する方法〜 / phpcon2021
hgsgtk
2
2.5k
Other Decks in Technology
See All in Technology
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2.7k
マルチアカウント環境における組織ポリシーについて まとめてみる
nrinetcom
PRO
2
110
あなたが人生で成功するための5つの普遍的法則 #jawsug #jawsdays2025 / 20250301 HEROZ
yoshidashingo
2
400
Introduction to OpenSearch Project - Search Engineering Tech Talk 2025 Winter
tkykenmt
2
230
エンジニア主導の企画立案を可能にする組織とは?
recruitengineers
PRO
1
310
QAエンジニアが スクラムマスターをすると いいなぁと思った話
____rina____
0
170
Global Databaseで実現するマルチリージョン自動切替とBlue/Greenデプロイ
j2yano
0
170
20250307_エンジニアじゃないけどAzureはじめてみた
ponponmikankan
2
190
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
9
2.6k
MLflowはどのようにLLMOpsの課題を解決するのか
taka_aki
0
140
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
540
遷移の高速化 ヤフートップの試行錯誤
narirou
6
2k
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Six Lessons from altMBA
skipperchong
27
3.6k
Gamification - CAS2011
davidbonilla
80
5.2k
Optimizing for Happiness
mojombo
377
70k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
227
22k
Music & Morning Musume
bryan
46
6.4k
Being A Developer After 40
akosma
89
590k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Why Our Code Smells
bkeepers
PRO
336
57k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
The Pragmatic Product Professional
lauravandoore
32
6.4k
The Cost Of JavaScript in 2023
addyosmani
47
7.5k
Transcript
ୈճ1)1ษڧձ!౦ژ #"4&גࣜձࣾ ౦ޱᏻʢ!,IJHBTIJHVDIJʣ 4OBQTIPU5FTUJOH͕ͬͯͭ͋ͬͯͳ
ࣗݾհ !,IJHBTIJHVDIJ౦ޱᏻ w ॴଐɿ#"4&גࣜձࣾ #"4&1SPEVDU%JWJTJPOαʔόαΠυΤϯδχΞ w 1)1 $BLF1)1 w
ࣄɿܾࡁ։ൃɺ1)1ɾ$BLF1)1ͷόʔδϣϯΞοϓ
Έͳ͞Μ
طଘͷίʔυʹςετ͋Δ ڥͰ͔͢ʁ
ແ͍ͱͭΒ͘ͳ͍Ͱ͔͢
Ͱɺςετॻ͍͔ͯΒϦ ϑΝΫλϦϯά͍ͨ͠
͔ͯɺςετ͕ແ͍ίʔυ ΛϦϑΝΫλϦϯάͨ͘͠ ͳ͍
ͱ͍͑ɺ༷શ༰Λཧղ ͯ͠ςετॻ͘ͷ݁ߏͳ ͠ΜͲ͞
طଘͷৼΔ͍อূ͢Δς ετΛগ͠Ͱָʹॻ͚Δ ํ๏ͳ͍ͩΖ͏͔
4OBQTIPU5FTUJOH
4OBQTIPU5FTUJOH 'BDFCPPL+4ϑϨʔϜϫʔΫɿ+FTUͷػೳ͕༗໊
4OBQTIPU5FTUJOH w ࠷ॳͷςετ࣮ߦ࣌ʹςετέʔεͷΞτϓοτ͕อଘʢε φοϓγϣοτʣ͞ΕΔ w εφοϓγϣοτΛࢹͰ֬ೝͯ͠ظ௨ΓͳΒ0, w ճҎ߱ΞτϓοτͱεφοϓγϣοτΛൺֱͯ͠Ұ க͍ͯ͠Εςετ͕௨Δ w
1)16OJU༻ͷϥΠϒϥϦΛ࡞ͬͯ͘ΕͯΔਓ͕͍Δ w HJUIVCDPNTQBUJFQIQVOJUTOBQTIPUBTTFSUJPOT IUUQTRJJUBDPNLFOUUJUFNTDGFEFEF
ྫɿbIFMMPXPSME`Λฦ͢"1* IUUQTRJJUBDPN,IJHBTIJHVDIJJUFNTDBGGDBDGE ˣϨεϙϯε݁ՌΛҾʹ͚ͩ͢
ྫɿbIFMMPXPSME`Λฦ͢"1* IUUQTRJJUBDPN,IJHBTIJHVDIJJUFNTDBGGDBDGE ˣॳճ࣮ߦ݁Ռ ͜ͷஈ֊ͰɺBTTFSUJPOߦΘΕͯͳ͍ɻ
ྫɿbIFMMPXPSME`Λฦ͢"1* IUUQTRJJUBDPN,IJHBTIJHVDIJJUFNTDBGGDBDGE @@TOBQTIPUT@@ͱ͍͏σΟϨΫτϦ͕ग़ݱ ςετέʔεͷΞτϓοτ͕อଘʢεφοϓγϣοτʣ͞ΕΔ w εφοϓγϣοτΛࢹͰ֬ೝͯ͠ظ௨ΓͳΒ0,
ྫɿbIFMMPXPSME`Λฦ͢"1* IUUQTRJJUBDPN,IJHBTIJHVDIJJUFNTDBGGDBDGE ճҎ߱ΞτϓοτͱεφοϓγϣοτΛൺֱ w όά͕ࠞೖͯ͠Կ͔݁Ռ͕มΘͬͨΒςετ͕མͪΔɻ w มΘ͍ͬͯΔ͜ͱ͕ظͷ߹ɺ ɹEVQEBUFTOBQTIPUTΛ͚ͭͯςετ࣮ߦ͢Εɺ ɹεφοϓγϣοτ͕ߋ৽͞ΕΔɻ
༻ҙ͞ΕͯΔϝιουҰཡ IUUQTRJJUBDPN,IJHBTIJHVDIJJUFNTDBGGDBDGE
Αͦ͞͏ͳͱ͜Ζ w ςετΛॻ͕͘ݮͰ͖ͦ͏ w ظΛఆٛ͢Δ࣌ؒݮɻߦͷେ͖͍݁Ռ͕ظͷ࣌ ͔ͳΓָʹͳΔͷͰɻ w ςετίʔυࣗମ͖ͬ͢Γ͢Δ w ༷͕͔Βͳͯ͘ςετ͕ॻ͚Δ
Αͦ͞͏ͳͱ͜Ζ ˠطଘͷৼΔ͍อূ͢Δςετͱͯ͠ͷׂ ͋ΔఔՌָͨͭͭ͠Ͱ͖Δɻ
ݒ೦ w εφοϓγϣοτϑΝΠϧͷཧ w ܻݸͷεφοϓγϣοτ͕Ұͭͷ@@TOBQTIPUT@@ʹอ͞Εͯͨ Β͔ͳΓਏͦ͏ɻ w ෳͷεφοϓγϣοτͰςετ͕མͪΔ࣌ w εφοϓγϣοτ͕ਖ਼͍͠έʔεͱίʔυͷํ͕ਖ਼͍͠έʔε͕ࠞ
ࡏͨ͠ͱ͖ͷΓ͚͕ඞཁʹͳΔ
ݒ೦ ˠͲ͜·ͰεφοϓγϣοτςετͰৼΔ͍Λ อূ͢Δ͖͔ݕ౼͕ඞཁɻ
+FTUʹ͓͚Δ 4OBQTIPU5FTUJOHͱ
+FTUʹ͓͚Δ4OBQTIPU5FTUJOH IUUQTGBDFCPPLHJUIVCJPKFTUEPDTKBTOBQTIPUUFTUJOHIUNM
+FTUʹ͓͚Δ4OBQTIPU5FTUJOH ɾεφοϓγϣοτςετ୯ମςετΛସ͢ΔͷͰ͔͢ʁ εφοϓγϣοτςετJestʹؚ·ΕΔ̎̌Ҏ্ͷΞαʔγϣϯͷ̍ͭʹա͗·ͤΜɻ εφοϓγϣοτςετͷͶΒ͍طଘͷ୯ମςετΛସ͢Δ͜ͱͰͳ͘ɺՃͷς ετ݁ՌΛఏڙͯ͠ςετʹ͓͚Δ࡞ۀෛ୲ΛݮΒ͢͜ͱͰ͢ɻ Ұ෦ͷγφϦΦͰεφο ϓγϣοτςετಛఆͷػೳηοτʢྫ: Reactίϯϙʔωϯτʣʹ͓͚Δ୯ମςετͷ ඞཁੑΛऔΓڈΔՄೳੑ͕͋Γ·͕͢ɺฒߦͯ͠ར༻͢Δ͜ͱͰ͖·͢ɻ IUUQTGBDFCPPLHJUIVCJPKFTUEPDTKBTOBQTIPUUFTUJOHIUNM
+FTUʹ͓͚Δ4OBQTIPU5FTUJOH ɾεφοϓγϣοτςετ୯ମςετΛସ͢ΔͷͰ͔͢ʁ εφοϓγϣοτςετJestʹؚ·ΕΔ̎̌Ҏ্ͷΞαʔγϣϯͷ̍ͭʹա͗·ͤΜɻ εφοϓγϣοτςετͷͶΒ͍طଘͷ୯ମςετΛସ͢Δ͜ͱͰͳ͘ɺՃͷς ετ݁ՌΛఏڙͯ͠ςετʹ͓͚Δ࡞ۀෛ୲ΛݮΒ͢͜ͱͰ͢ɻ Ұ෦ͷγφϦΦͰεφο ϓγϣοτςετಛఆͷػೳηοτʢྫ: Reactίϯϙʔωϯτʣʹ͓͚Δ୯ମςετͷ ඞཁੑΛऔΓڈΔՄೳੑ͕͋Γ·͕͢ɺฒߦͯ͠ར༻͢Δ͜ͱͰ͖·͢ɻ IUUQTGBDFCPPLHJUIVCJPKFTUEPDTKBTOBQTIPUUFTUJOHIUNM
ˠ͋͘·Ͱɺ୯ମςετͷBTTFSUJPOͷҰͭɻ εφοϓγϣοτςετॻ͍͔ͨΒͱݴͬͯຬ͍͚ͯ͠ͳ͍ɻ
ͱ͍͑ w */165ʹର͢Δ065165Λอূ͢ΔͰ͖Δػೳ ༗ӹɻ w ίϯτϩʔϥʔείʔϓͷ͍ςετέʔεʹ ߜΔͷ͕ྑ͍ॴײɻ w ϦϑΝΫλϦϯάɾઈೲظҊ݅ɾόʔδϣϯ Ξοϓࢪࡦͷࡍʹྗڧ͍ຯํʹͳͬͯ͘Εͦ͏ɻ
൵ใ
ಈ࡞ڥ 1)11)16OJUҎ্
όʔδϣϯґଘͷॲཧͳ͍Β͍͠Ͱ͢ ࣗ࡞Ͱ͖ΔʢΒ͍͠ʣ
·ͱΊ
·ͱΊ w 4OBQTIPU5FTUJOHͱ͍͏Ξαʔγϣϯख๏͕ ͋ͬͯศརɻ w ͰɺͪΌΜͱࣗͰॻ͘ͷ͕ͳΜ͔ͩΜͩҰ൪ ཧ w ࣌ؒత੍͕͋Δ߹ڧ͍ຯํʹͳͬͯ͘ ΕΔ͔
ৄ͍͍͠ํΣϒ 1)1ͰTOBQTIPUUFTUJOHΛΓ·ͤΜ͔ʁ
1)1FS,BJHJߦ͖·͠ΐ͏ʂ IUUQTQIQFSLBJHJKQ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ #"4&גࣜձࣾ ౦ޱᏻʢ!,IJHBTIJHVDIJʣ