Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
「Magic Pod」でモバイルアプリのUIテストをもっと簡単に
Search
Nozomi Ito
February 18, 2021
Technology
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「Magic Pod」で モバイルアプリのUIテストをもっと簡単に
Nozomi Ito
February 18, 2021
More Decks by Nozomi Ito
See All by Nozomi Ito
ノーコードに学ぶE2Eテスト自動化ベストプラクティス
nozomiito
0
1.1k
ノーコードE2Eテストで実現する高速開発
nozomiito
0
850
MagicPodで実現するE2Eテスト自動化
nozomiito
0
4.1k
MagicPod開発におけるテスト自動化とCI
nozomiito
0
930
最近のMagicPodまとめ
nozomiito
0
700
テスト自動化スタートアップがエバンジェリストを募集するワケ
nozomiito
0
390
MagicPodが取り組むテスト自動化最前線
nozomiito
0
560
ロケーターを学んでテスト自動化上級者を目指そう
nozomiito
1
9.8k
テスト自動化で起業した10年とテスト自動化普及の歴史を振り返る
nozomiito
4
2.8k
Other Decks in Technology
See All in Technology
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
110
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
5
4.1k
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
610
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
660
FOSS4Gを活用した自治体業務DXの試み
470715
0
150
その Valkey 使いこなしていますか?
onk
PRO
5
890
メルペイ 会計システム概要と歴史
mewuto
1
220
Classmethod Company Deck
satoshi7
0
200
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.6k
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
170
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
4
940
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
280
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
KATA
mclloyd
PRO
35
16k
A better future with KSS
kneath
240
18k
Leo the Paperboy
mayatellez
10
2.4k
The SEO Collaboration Effect
kristinabergwall1
1
590
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Test your architecture with Archunit
thirion
2
2.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
370
My Coaching Mixtape
mlcsv
0
350
Music & Morning Musume
bryan
48
7.4k
Transcript
ʮ.BHJD1PEʯͰ ϞόΠϧΞϓϦͷ6*ςετΛͬͱ؆୯ʹ 53*%&/5 ҏ౻
"CPVUNF • ҏ౻ !JUP@OP[PNJ • גࣜձࣾ53*%&/5$&0 • ࣗಈςετπʔϧ։ൃྺҎ্ •
ʮຊ4FMFOJVNϢʔβʔίϛϡχςΟʯӡӦ • ஶॻ
ΞδΣϯμ ϞόΠϧΞϓϦ6*ςετͷ՝ .BHJD1PEͷհ "*ͷ׆༻ ػೳհ #JUSJTFͱͷ࿈ܞ ͓͢͢Ίͷ͍ํ
.BHJD1PEͷհ "*ͷ׆༻ ػೳհ #JUSJTFͱͷ࿈ܞ ͓͢͢Ίͷ͍ํ ϞόΠϧΞϓϦ6*ςετͷ՝
खಈ6*ςετͷ՝ ϦϦʔεͷͨͼʹ ಉ͡ςετ࡞ۀͷ܁Γฦ͠ ϞόΠϧΞϓϦ6*ςετͷ՝ ༷ʑͳ04όʔδϣϯɾ ػछͰͷಈ࡞֬ೝ テスト リリース 開発 テスト
リリース 開発 テスト リリース 開発
ղܾࡦ 6*ςετͷࣗಈԽ ϦϦʔεͷͨͼʹ ಉ͡ςετ࡞ۀͷ܁Γฦ͠ ϞόΠϧΞϓϦ6*ςετͷ՝ ༷ʑͳ04όʔδϣϯ ɾػछͰͷಈ࡞֬ೝ ҰςετΛ࡞͢Εɺ ίετͰԿճ࣮ࢪͰ͖Δ
ҰςετΛ࡞͢Εɺ ৭ʑͳڥͰ࣮ߦͰ͖Δ
༷ʑͳςετࣗಈԽ ϞόΠϧΞϓϦ6*ςετͷ՝ システム全体を通しでテスト UIテストツールなどを活用 複数の部品を結合してテスト APIテストツールなどを活用 個々の関数やクラスのテスト ユニットテストツールなどを活用 E2E Test
Integration Test Unit Test
ϞόΠϧΞϓϦ6*ࣗಈςετͷ՝ ༷ʑͳٕज़τϥϒϧ ϞόΠϧΞϓϦ6*ςετͷ՝ ςετίʔυͷཧղ "QQJVN9DPEFͷఆظߋ৽ 6*มߋ࣌ͷεΫϦϓτमਖ਼
ղܾࡦ .BHJD1PE ϞόΠϧΞϓϦ6*ςετͷ՝ ͔Γ͍͢εΫϦϓτ ΤΩεύʔτʹΑΔ҆ఆԽྗ ϝϯςφϯεෆཁͷΫϥυ "*ʹΑΔࣗಈम෮
ϞόΠϧΞϓϦ6*ςετͷ՝ .BHJD1PEͷհ "*ͷ׆༻ ػೳհ #JUSJTFͱͷ࿈ܞ ͓͢͢Ίͷ͍ํ
.BHJD1PE !53*%&/5*OD • 6*ςετࣗಈԽΫϥυαʔϏε • ϞόΠϧΞϓϦ 8FCαΠτͷςετʹରԠ • ແྉϓϥϯ ༗ྉϓϥϯ
• ར༻ऀॱௐʹ૿Ճத .BHJD1PEͷհ
͝ར༻اۀ͞· .BHJD1PEͷհ NBHJDQPEDPN
ϒϩάͰऔΓ্͍͍͛ͯͨͩͯ·͢ .BHJD1PEͷհ • 6*ςετͷࣗಈԽʹ.BHJD1PEΛಋೖͨ͠ • "*ࣗಈςετπʔϧ.BHJD 1PEͰɺະܦݧऀ͕ ࣗಈςετͷຽओԽʹઓͯ͠Έͨɻ • .BHJD
1PEϞόΠϧΞϓϦςετ࣮ͷٯҾ͖ • .BHJD 1PEΛͬͯΈ·ͨ͠ • OPUFࣾͰͷ.BHJD 1PE׆༻ࣄྫ • .BHJD 1PE ׆༻ࣄྫ • ଓɾϊϋφͷςετࣗಈԽ • ඇϓϩάϥϚʔͰࣗಈςετ
ରԠڥ ςετσʔλอଘઌ .BHJD1PEͷհ ςετ࣮ߦڥ Ϋϥυ ϩʔΧϧ .BHJD1PE Ϋϥυ ֎෦ Ϋϥυ
σϞ .BHJD1PEͷհ ςετฤूը໘ .BHJD1PE Ϋϥυ
.BHJD1PEͷհ σϞ https://www.youtube.com/watch/IrK3g-0_Ypc
ϞόΠϧΞϓϦ6*ςετͷ՝ .BHJD1PEͷհ "*ͷ׆༻ ػೳհ #JUSJTFͱͷ࿈ܞ ͓͢͢Ίͷ͍ํ
"*ͷ׆༻ ຊޠͷཁૉઆ໌จΛܭࢉ ςετεΫϦϓτࣗಈम෮
ຊޠͷཁૉઆ໌จ "*ͷ׆༻ r ຊޠͷཁૉઆ໌จΛܭࢉ 要素説明⽂: AIロジックで計算 ⾃由に書き換え可能 システム(Appium)ロケータ: 要素ツリーから計算
ཁૉઆ໌จͷܭࢉʹ͍ͬͯΔใ "*ͷ׆༻ r ຊޠͷཁૉઆ໌จΛܭࢉ • 6*πϦʔใଐੑɺςΩετɺλά໊ɺʑ • 0$3 ը૾͔Βͷจࣈೝࣝ •
σΟʔϓϥʔχϯάʹΑΔମछྨೝࣝ
ࣗಈम෮ ηϧϑώʔϦϯά ͱ "*ͷ׆༻ r ςετεΫϦϓτࣗಈम෮ ςετରը໘ͷόʔδϣϯΞοϓʹ߹Θ ͤɺ "*͕ςετεΫϦϓτΛࣗಈमਖ਼
.BHJD 1PEͷࣗಈम෮ σϞ "*ͷ׆༻ r ςετεΫϦϓτࣗಈम෮ • ͱ͋ΔσϞΞϓϦͷςετέʔε •
JE͕ͳ͍ͨΊɺ෦γεςϜ໊ʹจࣈྻʮొʯΛ༻
.BHJD1PEͷࣗಈम෮ σϞ • ͋Δɺʮొʯ͕ʮ͜ͷ༰Ͱొʯʹมߋ͞Εͨ • ͜ͷΞϓϦͰςετΛ࣮ߦ͢Δͱɺςετࣦഊͯ͠͠·͏͕ "*ͷ׆༻ r ςετεΫϦϓτࣗಈम෮
"*ͷ׆༻ r ςετεΫϦϓτࣗಈम෮ .BHJD1PEͷࣗಈम෮ σϞ https://www.youtube.com/watch/WcQ9lBatJpg
• ςετ࡞࣌ͱ࣮ߦ࣌ͷ6*πϦʔΛൺֱͯ͠ɺྨࣅ͕ߴ͍ ཁૉ͕͋Εར༻ ࣗಈम෮ͷΈ "*ͷ׆༻ r ςετεΫϦϓτࣗಈम෮ テスト作成時ロケータ テスト実⾏時UI テスト作成時UI
修復後の新ロケータ
• ཁૉͷ֤छଐੑɺҐஔɺଞͷཁૉͱͷࢠؔɺʑ • 0$3݁Ռ • σΟʔϓϥʔχϯάʹΑΔମछྨೝࣝ ྨࣅൺֱͷج४ "*ͷ׆༻ r ςετεΫϦϓτࣗಈम෮
ϞόΠϧΞϓϦ6*ςετͷ՝ .BHJD1PEͷհ "*ͷ׆༻ ػೳհ #JUSJTFͱͷ࿈ܞ ͓͢͢Ίͷ͍ํ
ΫϥυγϛϡϨʔλ ػೳհ • ϩʔΧϧڥΑΓ҆ఆɾߴ • J04ɺ"OESPJEʹରԠ
Ϋϥυ࣮ػ • #SPXTFS4UBDL 4BVDF-BCT 3FNPUF5FTU,JU )FBE4QJO ͱ࿈ܞՄೳ ֎෦αʔϏεͷܖ͕ඞཁ • աڈػछ͔Β࠷৽ػछ·Ͱ๛ͳἧ͑
ػೳհ SauceLabs Remote TestKit
Ϋϩεςετ • ৭ʑͳόʔδϣϯػछͷΈ߹ΘͤͰฒྻྻ࣮ߦ ػೳհ
Ϋϩεςετ • ςετϑϩʔΛׂͯ͠ฒྻ࣮ߦ͠ɺߴԽ͢Δ͜ͱՄೳ ػೳհ
֤छૢ࡞ • ͞·͟·ͳίϚϯυΛ༻ҙ ػೳհ
֤छૢ࡞ ػೳհ 画像アップロード ピッカー操作 端末回転 スワイプ
8FC7JFXαϙʔτ • $PSEPWBΞϓϦ .POBDBΞϓϦʹରԠ ػೳհ
νΣοΫ ػೳհ • ༷ʑͳ݅ͰظνΣοΫ
݅ذ ػೳհ • ʮμΠΞϩά͕ग़ͨͱ͖͚ͩλοϓ͢ΔʯͳͲͷ༻్ʹ
ڞ༗εςοϓ ػೳհ • ܁Γฦ͠ར༻͢Δॲཧڞ௨Խ
σʔλۦಈςετ ػೳհ • ύϥϝʔλΛม͑ͯɺಉ͡ςετΛԿ࣮ߦ
ϖʔδը૾ΛෳςετͰڞ༗ ػೳհ • 6*ϨϙδτϦɺ6*ϚοϓͷΑ͏ʹ͑Δ
ϩέʔλมߋ ػೳհ • ༷ʑͳީิ͔Β͖ͳͷΛબՄೳ
ม ػೳհ • ը໘্ͷͳͲΛอଘͯ͠ޙଓॲཧʹར༻Մೳ
ڞ༗ม ػೳհ • શςετͰڞ༗͞ΕΔύϥϝʔλ
γʔΫϨοτม ػೳհ • ϩάʹग़ͨ͘͠ͳ͍ϚεΩϯά
ม ػೳհ • ʮ໌ͷΛೖྗʯͳͲͷ༻్ʹ
γεςϜม ػೳհ • ಛఆͷ04Ͱ͚ͩߦ͍͍ͨॲཧͳͲʹ
)551ϦΫΤετૹ৴ ػೳհ • %#ͷνΣοΫσʔλΫϦΞͳͲʹ
&NBJMͷςετ ػೳհ • ʮ)551ϦΫΤετૹ৴ʯͱʮਖ਼نදݱϚονʯͷΈ߹Θͤ - (NBJMʹૹ৴͞Εͨ༰ͷνΣοΫ - (NBJMʹૹ৴͞ΕͨϦϯΫΛΫϦοΫ • IUUQTXXXUSJEFOURBDPNNBHJDQPEFNBJMUFTUJOH
ςετέʔεϥϕϧ ػೳհ • ςετʹϥϕϧΛ༩Մೳ • ϥϕϧΛࢦఆ PSআ֎ ͯ͠ςετҰׅ࣮ߦՄೳ
εέδϡʔϧ࣮ߦ ػೳհ • ຊ൪ڥͷࢹͳͲʹ
ίϝϯτ ػೳհ
ίϐʔɾషΓ͚ ػೳհ
ฤूΛݩʹ͢ɾΓ͢ ػೳհ
෦ςετ࣮ߦ ػೳհ
ςετ݁Ռը໘Ωϟϓνϟμϯϩʔυ ػೳհ • ΤϏσϯεऔಘը૾ൺֱʹ
ը૾ࠩൺֱϨϙʔτ ػೳհ • ը໘ΩϟϓνϟμϯϩʔυͱSFHDMJͷΈ߹ΘͤͰ࣮ݱ • IUUQTCMPHUSJEFOURBDPNSFHDMJNBHJDQPEFF
ϝϯόʔݖݶཧ ػೳհ • ϓϩδΣΫτ୯ҐͰͷݖݶઃఆ͕Մೳ
ଓݩ*1੍ݶ ػೳհ • ΤϯλʔϓϥΠζϓϥϯͷػೳ
4".-γϯάϧαΠϯΦϯ ػೳհ • ΤϯλʔϓϥΠζϓϥϯͷػೳ
ӳޠར༻Մೳ ػೳհ • ւ֎ͰΘΕ͍ͯ·͢
ϞόΠϧΞϓϦ6*ςετͷ՝ .BHJD1PEͷհ "*ͷ׆༻ ػೳհ #JUSJTFͱͷ࿈ܞ ͓͢͢Ίͷ͍ํ
#JUSJTF͔Βͷ.BHJD 1PEςετ࣮ߦ #JUSJTFͱͷ࿈ܞ • ʮ.BHJD1PEʯεςοϓͰ(6*ઃఆՄೳ
Ϗϧυ͔Βςετ·Ͱϒϥβ্Ͱ݁ #JUSJTFͱͷ࿈ܞ Bitriseの GUIで アプリのビルド設定 Magic Podの GUIで テスト作成 Magic
Podステップの GUIで テスト実⾏設定
$*ͷྲྀΕ .BHJD1PEΫϥυ্ͷςετ #JUSJTFͱͷ࿈ܞ γϛϡϨʔλɾ ΤϛϡϨʔλ༻ͷ BQQBQLΛϏϧυ ʮ.BHJD1PEʯ εςοϓͰ ςετ࣮ߦ .BHJD1PEͷ
ΫϥυͰ ςετ࣮ߦ
$*ͷྲྀΕ ֎෦Ϋϥυ্ͷςετ #JUSJTFͱͷ࿈ܞ ࣮ػ༻ͷ JQBBQLΛϏϧυ ʮ.BHJD1PEʯ εςοϓͰ ςετ࣮ߦ 4BVDF-BCTɾ #SPXTFS4UBDLͰ
ςετ࣮ߦ
ৄ͍͠ઃఆํ๏ #JUSJTFͱͷ࿈ܞ • J04 - IUUQTCMPHUSJEFOURBDPNCJUSJTFNBHJDQPE • "OESPJE - IUUQTCMPHUSJEFOURBDPNCJUSJTFNBHJDQPEBOESPJE
ϞόΠϧΞϓϦ6*ςετͷ՝ .BHJD1PEͷհ "*ͷ׆༻ ػೳհ #JUSJTFͱͷ࿈ܞ ͓͢͢Ίͷ͍ํ
͓͢͢Ίͷ͍ํ ᶃϦϦʔεલखಈςετͷࣗಈԽ ᶄϚϧνςετ ᶅ$* ᶆຊ൪ڥࢹ ͓͢͢Ίͷ͍ํ
ᶃϦϦʔεલखಈςετͷࣗಈԽ ͓͢͢Ίͷ͍ํ • ݄ճҎ্ͷසͰςετ͢Δ߹ʹɺಛʹ༗ޮ • ͓͢͢ΊͷࣗಈԽ༏ઌॱҐ まずは正常系を カバー 運⽤してみて、 課題を洗い出す
異常系は 正常系のあと
ᶄϚϧνςετ • ʮҰׅ࣮ߦςετʯΛ͞·͟·ͳύλʔϯͰ࣮ࢪ OSバージョン iPhone/iPad 多⾔語テスト OSバージョン メーカー iOS Android
共通 ͓͢͢Ίͷ͍ํ
ᶅ$* ͓͢͢Ίͷ͍ํ • ຖ൩ςετ࣮ߦ PS։ൃςετڥΛߋ৽͢Δͨͼʹ࣮ߦ • ෆ۩߹ʹ͙͢ʹؾ͚ΔͷͰɺ։ൃ͕ޮతʹ - ͕࣌ؒܦͭͱɺࢥ͍ग़͢ͷ͕େม -
ଟͷ։ൃऀͷमਖ਼͕ೖͬͨޙͩͱɺݪҼಛఆ͕େม
ᶅ$* ͓͢͢Ίͷ͍ํ ࠷৽ιʔείʔυͰ ΞϓϦΛϏϧυ ʮ.BHJD1PEʯεςοϓͰ ςετ࣮ߦ ΫϥυͰ ςετ࣮ߦ
ᶆຊ൪ࢹ ͓͢͢Ίͷ͍ํ • ༧ظͤ͵ʹΑΓຊ൪ڥͰ͕ى͖͍ͯͳ͍͔ࢹ - ϝϞϦɺσΟεΫɺωοτϫʔΫɺαʔόμϯɺखಈ࡞ۀϛεɺFUD • ຊ൪ڥͱݕূڥͰɺσʔλɾαʔόઃఆɾΠϯϑϥ͕ҟ ͳΔͷͰɺຊ൪Ͱ͚͕ͩى͜Δ͜ͱ͋Δ
ͥͻ͝׆༻͍ͩ͘͞ʂ ᶃϦϦʔεલखಈςετͷࣗಈԽ ᶄϚϧνςετ ᶅ$* ᶆຊ൪ڥࢹ ͓͢͢Ίͷ͍ํ
͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ