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
新卒一年目が大規模WebアプリのE2Eテストに挑戦した話
Search
sugoikondo 近藤 豊峰
September 22, 2018
Technology
0
230
新卒一年目が大規模WebアプリのE2Eテストに挑戦した話
2018/09/22 Jser.info 使用スライド
sugoikondo 近藤 豊峰
September 22, 2018
Tweet
Share
More Decks by sugoikondo 近藤 豊峰
See All by sugoikondo 近藤 豊峰
誰でもできる!OpenAI Embedding API を活用して高度なレコメンド機能を実現してみよう - A story about implementing an advanced recommendation function using the OpenAI Embedding API
sugoikondo
2
130
OpenAI Embedding API を活用して、 高度なレコメンド機能を実装した話 - A story about implementing an advanced recommendation function using the OpenAI Embedding API
sugoikondo
0
230
Other Decks in Technology
See All in Technology
DroidKaigi 2024 たすけて!ViewModel
mhidaka
5
1.2k
QAに対する超個人的な解釈 / Personal Take on QA
toma_sm
1
180
JEP 480: Structured Concurrency
aya_ebata
0
140
事前準備が肝!AI活用のための業務改革
layerx
PRO
1
440
APIファースト、そしてTime To First Call削減への道筋
nagix
2
200
仕事を前に進めるためのコツ - 判断と決断と共有 / Aim for the goal
soudai
18
7.3k
自作Cコンパイラ 8時間の奮闘
soukouki
0
880
LINE WORKSとシステムを繋ぐ LINE WORKSのDevelopers機能紹介
mmclsntr
0
110
タイミーのレコメンドにおける ABテストの運用
ozeshun
2
240
サーバーレスAPIのパフォーマンステストとアプリの未来
nagix
4
2.5k
持続可能なソフトウェア開発を支える『GitHub CI/CD実践ガイド』
tmknom
10
1.8k
DuckDB雑紹介(1.1対応版)@DuckDB座談会
ktz
10
1.9k
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
363
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
124
18k
Speed Design
sergeychernyshev
22
440
RailsConf 2023
tenderlove
28
820
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Building Applications with DynamoDB
mza
90
6k
Building Adaptive Systems
keathley
36
2.1k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
What the flash - Photography Introduction
edds
67
11k
Building Flexible Design Systems
yeseniaperezcruz
325
38k
Git: the NoSQL Database
bkeepers
PRO
425
64k
How to Think Like a Performance Engineer
csswizardry
16
970
Transcript
৽ଔҰ͕ େنWEBΞϓϦͷ E2Eςετʹઓͨ͠. "UTVNJOF,POEP!IBJESBOU
"UTVNJOF,POEP 8FC"QQMJDBUJPO&OHJOFFS
E2Eςετ࣮·ͰͷܦҢ
ීஈͷ୲ϓϩμΫτʹ͍ͭͯ w "OHVMBS 4DBMBͷେن#UP#γεςϜ w "1*ΤϯυϙΠϯτݸ w ૯ߦ ߦ ϥΠϒϥϦܥআ֎
w ݱࡏઈࢍόϦόϦ૿Ճத ࠓɺ͜ͷγεςϜʹ͓͚Δ&&ςετ࣮ͷ͓ɻ
ͳͥE2Eςετʁ
ᶃೖ͔ࣾͯ͠ΒোΛى͜͠·͔ͬͨ͘Βɻ ͨͬͨϲ݄Ͱ ճҾ͖ى͜͢ தʹ݁ߏσΧΠোʜ
ᶄόοΫςετͷඞཁੑ͕ബ͔͔ͬͨΒ w ܕ҆શͳ4DBMBͷޭࡑ w େͷόάͷݪҼίϯύΠϧͰൃݟͰ͖Δ w །Ұͷෆ҆+BWBͰॻ͍ͨίʔυɺϥΠϒϥϦ w ΫϦςΟΧϧͳ෦طʹςετ࡞ࡁ w
ෳࡶͳܭࢉɾॲཧΛ͏෦طʹϢχοτςετ͕ ॻ͔Ε͍ͯΔঢ়گͩͬͨ
ᶅϑϩϯτʹ࣭୲อͷΈ͕ແ͔͔ͬͨΒ w ը໘ݸ w ͜ͷ֤ը໘͕ͦΕͧΕdݸͷίϯϙʔωϯτΛ๊͑Δ w େͳͷςετέʔεΛྻه͠खಈͰ֬ೝ w શͯࢹɾखಈͰͷ֬ೝ
ϑϩϯτͷςετɺॻ͜͏ʂ ʢ ॻ͍ͨ͜ͱແ͍͚Ͳ ʣ
࣮ͷख๏
ςετ༻ϥΠϒϥϦબఆ × Puppeteer jest w $ISPNFݶఆͳ͕Βߴػೳͳϒϥβૢ࡞ w ςετέʔε͕γϯϓϧʹॻ͚ɺυΩϡϝϯτ͕ݟ͔͔ͬͨ͢Β w ޙޫ
ςετΛॻ͖࢝Ίͨॴ ϩάΠϯը໘͔Βॻ͖࢝ΊΔ͜ͱʹ w ઈରʹࣦഊ͍͚ͯ͠ͳ͍ w ຆͲมߋ͕ൃੜ͠ͳ͍ w ࠷ػೳ͕গͳ͘ɺϢʔβʔετʔϦʔ͕Ұ͚ͭͩͳͷͰ ςετ͕ൺֱతॻ͖͍͢ ଟ
ςετΛॻ͍ͯΈͯɾɾɾ ྫ ϩάΠϯը໘ w ʰϢʔβʔೝূʱˠʰࢪઃબʱˠʰ৬һબʱˠʰύείʔυೖྗʱ ·Ͱ͕ҰͭͷϢʔβʔετʔϦʔ w ૯ߦߦ w ͨͩ͠ɺςετέʔε͚̎ͭͩ
ະϩάΠϯ࣌ͷϦμΠϨΫτॲཧɺϩάΠϯॲཧ
ॻ͍ͯΈͯͲ͏͔ͩͬͨʁ
࠷ॳͭΒΈ͕ଟ͔ͬͨɻɻ
࠷ॳʹײͨͭ͡ΒΈͷڞ༗
ᶃ࣮ߦ࣌ͷڥͰςετ݁Ռ͕มΘΔ ಉ͡ίʔυͳͷʹɺ࣮ߦ͢Δͨͼʹޭ͢Δ͔Ͳ͏͔͕มΘΔ ͦͷޙ͙͢ʹ࣮ߦ͢Δͱɺ
ᶃ࣮ߦ࣌ͷڥͰςετ݁Ռ͕มΘΔ w ωοτϫʔΫͷ࣭Ͱςετͷޭ͕มԽ ଟ w ՈͷωοτͰेதീམͪΔɻ w ༗ઢ͔ແઢ͔Ͱςετͷޭ͕มΘΔɻ w ฒྻ࣮ߦͷ෭࡞༻ʁ
ਖ਼ɺෆ໌ w ϘλϯͷΫϦοΫ࣌ʹɺΫϦοΫ͕લޙ͢Δ͜ͱ͕͋Δ w ύεϫʔυͷೖྗͰɺೖྗ͕લޙ͢Δ͜ͱ͕كʹൃੜ
w ςϯϓϨʔτͷमਖ਼Ͱςετ͕ಈ͔ͳ͘ͳΔ w )5.-ߏ $44Ϋϥεͷमਖ਼ηϨΫλΛ؆୯ʹഁյ͢Δ ᶄςετ͕յΕ͍͢
ྫ (&5ͷςετɺͲ͏͢Δʁ w (&5ͯ͘͠ΔσʔλΛ༧Ί࡞͓ͬͯ͘ʁ w আ͞Εͳ͍อূʁ w ॻ͖͑ΒΕͳ͍อূʁ UFTUEPVCMFͷΑ͏ͳϞοΫϥΠϒϥϦ͑ͳ͍ɻ વ
ᶅςετ༻σʔλ͕ਏ͍
݁ߏਏ͍…ʁ
Ͱɺπʔϧͷ͍ํ͕Θ͔Ε ·ͩਏ͘ͳ͍ʂʢଟʁʣ
ͭΒΈͷରॲ
ᶃ࣮ߦ࣌ͷڥͰςετ݁Ռ͕มΘΔ w 1VQQFUFFSͰޮՌతͩͬͨ͜ͱ w ϘλϯΫϦοΫલޙʹEFMBZΛ伵·ͤΔ w ϦΫΤετॲཧϖʔδભҠͷॲཧͷࡍ XBJU6OUJMʹzOFUXPSLJEMFz͔zOFUXPSLJEMFzΛࢦఆ͢Δ
ᶄςετ͕ڰ͍͍͢ ˠηϨΫλܥҰͭͷϑΝΠϧʹవΊͯҰݩཧ ࢀߟ2JJUB&&ςετͷಋೖ͔ΒֶΜͩ͜ͱ IUUQTRJJUBDPNNUNJUFNTFEEGE
͔ͯ͠͠ɺͭΒ͘ͳ͍ʁʁ
࠷ޙʹݸਓతͳϑϩϯτςετͷॴײ w &&Γ࣮͢Δίετ͕ߴ͍ͱࢥͬͨɻ w ࠷ॳʹίπΛ௫Ή·Ͱ͕ଟগਏ͍ w όοΫͷมߋ͚ͩͰͳ͘ɺϑϩϯτͷมߋςετΛյ͢ɻ ཁ͢Δʹϝϯςφϯείετ͕ߴ͍ɻ w ࠷ॳଞͷςετΛݕ౼ͨ͠΄͏͕ྑ͍͔ʁ
w Ϣχοτςετɺεφοϓγϣοτςετɺ"1*ͷΈςετFUD w ɺςετର͕ҧ͏ͨΊҰ֓ʹݴ͑ͳ͍͕ɻɻ
͝ਗ਼ௌɺຊʹ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
ࢀߟɾग़యͳͲ GoogleChrome/puppeteer https://github.com/GoogleChrome/puppeteer facebook/jest https://github.com/facebook/jest 2JJUB&&ςετͷಋೖ͔ΒֶΜͩ͜ͱ IUUQTRJJUBDPNNUNJUFNTFEEGE &OEUP&OEUFTUJOH3FBDUBQQTXJUI1VQQFUFFSBOE+FTU-PH3PDLFU IUUQTCMPHMPHSPDLFUDPNFOEUPFOEUFTUJOHSFBDUBQQTXJUIQVQQFUFFSBOEKFTU DFGCGE