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
[RMPxQuipper meetup #3]開発のための開発~スマホアプリ向けe2eテストの...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Naoki Ainoya
September 29, 2016
Programming
2.4k
1
Share
[RMPxQuipper meetup #3]開発のための開発~スマホアプリ向けe2eテストの検証導入事例を通じて~
【RMP×Quipper】Food&Drink meetup #3 - connpass
http://rmp-quipper.connpass.com/event/39082/
Naoki Ainoya
September 29, 2016
More Decks by Naoki Ainoya
See All by Naoki Ainoya
Looker BEACON 2021 / How we implemented Scalebase Analytics with Looker
ainoya
0
2.8k
Salesforce Application Development with GitHub Actions and sfdx-cli
ainoya
1
3.9k
Scalebase Analytics powered by Looker
ainoya
0
2.5k
SPIFFE in Action
ainoya
4
1.6k
How Developer Support Works
ainoya
10
2.7k
リクルートマーケティングパートナーズでのDeployGate活用事例
ainoya
2
4.5k
How to play Scala on dockerized infrastructure
ainoya
4
3.2k
prevs.io開発の裏側とコンテナ仮想化時代のAPI運用
ainoya
4
2.5k
ビルドパイプラインツールをGoで作った話
ainoya
3
2.6k
Other Decks in Programming
See All in Programming
tRPCの概要と少しだけパフォーマンス
misoton665
2
210
Making the RBS Parser Faster
soutaro
0
360
GitHubCopilotCLIをはじめよう.pdf
htkym
0
150
CursorとClaudeCodeとCodexとOpenCodeを実際に比較してみた
terisuke
1
470
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
5k
事業会社でのセキュリティ長期インターンについて
masachikaura
0
250
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
180
おれのAgentic Coding 2026/03
tsukasagr
1
150
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.2k
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
220
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
240
t *testing.T は どこからやってくるの?
otakakot
1
650
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
130
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
220
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.2k
GitHub's CSS Performance
jonrohan
1032
470k
How to build a perfect <img>
jonoalderson
1
5.4k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
350
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Transcript
։ൃͷͨΊͷ։ൃ ~εϚϗΞϓϦ͚e2eςετͷಋೖΛ௨ͯ͠~
ࣗݾհ • @ainoya • ૬୩ थʢ͍͋ͷ ͳ͓͖ʣ • ~2013/8 mixi:
Chef,ϓϥΠϕʔυΫϥυͷߏங • ~2015 RTC: ϓογϡ௨ج൫,ࣾFWͷอक • ~2016/3 RMP: ελσΟαϓϦӳ୯ޠɾENGLISHΤϯδχΞ • ~ࠓ RMP: ։ൃࢧԉάϧʔϓ
ٕज़ྖҬ • AWS/docker • Perl/Ruby/Java/Go/Scala/Swift • ΞϓϦ͔ΒΠϯϑϥ·Ͱઙ͘͘…
։ൃࢧԉνʔϜʹ͍ͭͯ • ϓϩμΫτ։ൃ෦ͷԣஅ৫
ϓϩμΫτ։ൃΛՃͤ͞Δͨ Ίͷ։ൃ • ࣾherokuͷߏங(deis on GCP) • σʔλղੳج൫ߏஙࢧԉ • e2eςετͷݕূ(Appium/Selenium)
• ݕূཧͷվળ(OpenSTFͷಋೖ)
e2eςετͷݕূɾಋೖ
ͳͥεϚϗΞϓϦͷe2eςε τΛΔͷ͔
ϦϦʔεલͷQA • εϓϨουγʔτͷखॱॻΛͱʹςελʔ ͕࿑ಇूతʹ࣮ࢪ
ςετέʔε͕ΒΉͱɺखಈςετʹ͔ ͔Δίετɾ͕͔࣌ؒʹͳΒͳ͘ͳΔ • ͕͔͔࣌ؒΔͱ͍͑ɺεϚϗΞϓϦɺ Ϣʔβʹόάमਖ਼Λಧ͚Δ·Ͱ͕͔͔࣌ؒΔ • Ώ͑ʹWebΞϓϦΑΓQA͔ͬ͠ΓΊʹ͠ ͍ͨ
ࣗಈԽ͍ͨ͠ • εϓϨουγʔτʹखॱॻͱ֬ೝ߲͕໌هͰ͖ ΔͳΒɺਓखͰΔඞཁͳ͍ɻࣗಈԽ͢Δ͖ • QAͰςελʔʹ͓ئ͍͢Δ͜ͱɺਓͰͳ͍ͱ Ͱ͖ͳ͍ςετʢ୳ࡧతςετʣ͚ͩʹ͍ͨ͠ • ࣗಈԽͰ͖ΔͳΒɺCIʹΈࠐΊQAஈ֊Ͱؾ ͮ͘σάϨΛૣظൃݟͰ͖ΔϝϦοτ͋Δ
ͳͥͰ͖͍ͯͳ͍ͷ͔ • εϚϗΞϓϦ͚e2eςετͷٕज़ൃల్্ • ֶशίετ͕ͱΜͰͳ͘ߴ͍ʢςετϑϨʔϜ ϫʔΫͷཧղɾ࣮ߦڥͷཧղɾςετͷॻ͖ํʣ • ϓϩμΫτ։ൃΛ͍ͯ͠ΔΤϯδχΞ͕ยखؒͰಋ ೖɾӡ༻͢Δͷݫ͍͠ •
݁ՌɺʮΈΜͳΓ͍ͨͱࢥͬͯΔ͚Ͳ·ͩͰ͖ͳ ͍ʯঢ়ଶ͕ͣͬͱଓ͍͍ͯΔ
ಋೖʹɺͬ͘͡ΓࠊΛਾ͑ ͯۛຯΛ͢ΔϦιʔε͕ඞཁ ։ൃج൫ۀͱͯ͠ઐͰऔΓΉ͖՝
ͱ͍͏Θ͚Ͱ͜͜ϲ݄e2eς ετͷಋೖݕূʹऔΓΜͰ͖ ͨ
Φʔτϝʔγϣϯ ϑϨʔϜϫʔΫ ςετ ϑϨʔϜϫʔΫ e2eςετڥͷ֓؍(ਤʣ 34QFD BQQJVN@MJC BQQJVN TFSWFS 0QFO45'
4BVDFMBCT "OESPJE࣮ػ "OESPJE࣮ػ "OESPJE࣮ػ J04γϛϡϨʔλ J04γϛϡϨʔλ J04γϛϡϨʔλ ςετϑΝʔϜ
ΦʔτϝʔγϣϯϑϨʔϜϫʔ Ϋ • appiumΛར༻ • seleniumͱಉ͡ΠϯλϑΣʔεͰios/android ΞϓϦͷૢ࡞͕Մೳ IUUQXXXQJMMBSHMPCBMDPNTJUFTEFGBVMUpMFTBQQJVNQOH
ςετϑϨʔϜϫʔΫʢςετ ίʔυ෦ʣ • rspecΛ࠾༻ • rubyεΫϦϓτͰ୭Ͱؾܰʹॻ͚Δͱ͍͏Λॏࢹ • ΞϓϦͱಉ͡ίʔυ(JavaSwift)Ͱॻ͔ͳ͍ͷͰɺ͏·͍͚͘ಉ ҰΞϓϦͷҟछϓϥοτϑΥʔϜؒͰςετίʔυΛڞ༗Ͱ͖Δ IUUQCQCMPHTQPUDPN*)9V1IZ$XJ5XL%U#4P*""""""""-")9Z4ISWM'TT$MBTT
%JBHSBNQOH
ςετέʔεྫ • UIཁૉͷબ۩ମతͳૢ࡞ΛPageObjectʹدͤΔ • RSpecͷςετέʔε͕ςετγφϦΦͱͯͦ͠ͷ··ಡΊΔΑ͏ʹͳΓɺ͔Γ͍͢
androidςετϑΝʔϜ • openstfΛར༻ɻࣾͷ࣮ػݕূ্Ͱςε τ࣮ߦՄೳ
iosςετϑΝʔϜ • saucelabsΛར༻ɻiosγϛϡϨʔλΛฒྻىಈͯ͠ςετߴ Խ͕Ͱ͖Δ
۩ମతͳςετͷྲྀΕ • ςετγφϦΦͷ࡞ • ΞϓϦૢ࡞ͷΩʔʹͳΔUIཁૉ໊ͷநग़ • arc(appium ruby console)Λ༻ •
ςετίʔυ࡞ • page objectύλʔϯΛϕʔεʹrspecͰ • ςετ࣮ߦ • openstf/saucelabs্Ͱ࣮ߦ • ςετ݁Ռͷू • εΫϦʔϯγϣοτΛػछʹ·ͱΊͯ
ը૾ࠩൺֱ(ݕূத) • Perceptual diffsʹΑΔσάϨͷݕग़ڧԽ https://github.com/uber/image-diff
ͬͯΈͯͷײ • ͖ͪΜͱӡ༻ΛճͤΕɺσάϨͷૣظൃݟʹཱͭιϦϡʔγϣϯ ʹͳΔ • ͔͠͠ͳ͕ΒɺεϚϗΞϓϦͷe2eςετՃͱϝϯςʹ͔ͳΓͷ ίετ͕͔͔Δ (Web/Seleniumͱൺ͍ͯΖ͍Ζൃల్্ʣ • ϢχοτςετͷΑ͏ʹ։ൃऀ͕ؾܰʹॻ͘ͷ·͍ͩ͠
• ·ͱΊͯ࣌ؒΛऔͬͯςετॻ͘ͷΛ͕ΜΔ͔ɺઐଐςετΤϯδ χΞ͕·ͱΊͯॻ͘ͷ͕ݱ࣮తͱײͨ͡ • ςετέʔε૿͗ͣ͢͠࠷ݶʹͱͲΊΔͷ͕·͍͠ʢϝϯς ίετͷ؍Ͱʣ
͓ΘΓʹɿ։ൃͷͨΊͷ։ൃ • ֤ϓϩμΫτͷٕज़తෛ࠴ɺجຊతʹ֤νʔϜͷΤϯδχΞ͕ͨͪࣄऀ ͱͯ͠ฦࡁ͢Δ • ͕ɺͲ͏ͯ͜͠΅Εٿൃੜͯ͠͠·͏ • νʔϜʹ͍Δͱݟ͍͑ͯͳ͍ࢹ͋Δ • ։ൃج൫άϧʔϓʢ෦ԣஅ৫ʣ͕͜΅ΕٿΛर͍ʹߦ͘
• ϓϩμΫτ։ൃͷڞ௨՝Λநग़ͯ͠ղܾʹऔΓΉ • ʮΈΜͳΓ͍ͨͱࢥͬͯΔ͚Ͳ·ͩղܾͰ͖͍ͯͳ͍՝ʯ͕Γଓ͚Δ ঢ়ଶΛແ͘͢ • e2eςετͷಋೖݕূͦͷҰ
We are Hiringʂ • Γ͍ͨ͜ͱଞʹͨ͘͞Μ͋Δɺๅͷࢁ • ϚʔέςΟϯάΦʔτϝʔγϣϯج൫ • σʔλղੳج൫ •
ηΩϡϦςΟϚωδϝϯτ • ಈը࠶ੜج൫ • R&Dʢػցֶशɾਂֶशetc..) • ্هͷΩʔϫʔυʹͽΜͱདྷͨํɺҰॹʹ՝ղܾʹऔΓΜͰ͘ΕΔ ํΛืूத
e2eςετ͡ΊΔͳΒandroid ͔Β͕͓͢͢Ί • iOSͷॾʑͷڍಈ͕͘ɺςετέʔεΛॻ͘ͷʹ͕͔͔࣌ؒΔ • appium͔Βͷૢ࡞͕͍ɺpageΦϒδΣΫτ͕औΓͮΒ͍ɺ accessiblity identifierΛઃఆͯ͠͏·͘ཁૉ͕ͱΕͳ͍ɺetc… • Androidͷ΄͏͕ॾʑૢ࡞͘͢͠ɺ͘͘͞͞ςετέʔεॻ͚Δ
• appiumͷԠૣ͍ɻମײͰiOSͷഒҎ্ͷ͞Ͱॻ͚Δ • ͱ͘ʹAndroid/iOS྆ํల։͍ͯ͠ΔΞϓϦͷ߹ɺ·ͣAndroid൛ ͰςετέʔεΛͤ͞ΔˠiOSʹςετέʔεҠ২͕ޮ͕ྑ͍ͱ ײͨ͡