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
Naoki Ainoya
September 29, 2016
Programming
1
2.3k
[RMPxQuipper meetup #3]開発のための開発~スマホアプリ向けe2eテストの検証導入事例を通じて~
【RMP×Quipper】Food&Drink meetup #3 - connpass
http://rmp-quipper.connpass.com/event/39082/
Naoki Ainoya
September 29, 2016
Tweet
Share
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.4k
SPIFFE in Action
ainoya
4
1.5k
How Developer Support Works
ainoya
10
2.6k
リクルートマーケティングパートナーズでのDeployGate活用事例
ainoya
2
4.5k
How to play Scala on dockerized infrastructure
ainoya
4
3.1k
prevs.io開発の裏側とコンテナ仮想化時代のAPI運用
ainoya
4
2.5k
ビルドパイプラインツールをGoで作った話
ainoya
3
2.6k
Other Decks in Programming
See All in Programming
Comparing decimals in Swift Testing
417_72ki
0
170
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
2
2.3k
MCP連携で加速するAI駆動開発/mcp integration accelerates ai-driven-development
bpstudy
0
310
JetBrainsのAI機能の紹介 #jjug
yusuke
0
210
Honoアップデート 2025年夏
yusukebe
1
790
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
980
自作OSでDOOMを動かしてみた
zakki0925224
1
1.4k
Introduction to Git & GitHub
latte72
0
110
Langfuseと歩む生成AI活用推進
licux
3
270
GitHub Copilotの全体像と活用のヒント AI駆動開発の最初の一歩
74th
8
3k
バイブコーディング × 設計思考
nogu66
0
120
書き捨てではなく継続開発可能なコードをAIコーディングエージェントで書くために意識していること
shuyakinjo
1
290
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Navigating Team Friction
lara
188
15k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Adopting Sorbet at Scale
ufuk
77
9.5k
Become a Pro
speakerdeck
PRO
29
5.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.6k
Facilitating Awesome Meetings
lara
55
6.5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Writing Fast Ruby
sferik
628
62k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
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ʹςετέʔεҠ২͕ޮ͕ྑ͍ͱ ײͨ͡