$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
What do you want to test with UI Test
Search
Shingo Tamaki
March 31, 2019
Technology
5
2k
What do you want to test with UI Test
I considered about what a UI test is.
Shingo Tamaki
March 31, 2019
Tweet
Share
More Decks by Shingo Tamaki
See All by Shingo Tamaki
Use Gemini CLI from Claude Code as part of Sub Agent
tamaki
0
230
Let's make an Immersive Video with APMP
tamaki
0
34
Firebase Studioで始めるモバイルアプリ開発入門
tamaki
0
27
Introduction to Claude Code Action
tamaki
0
730
AIエージェントを使ったiOSアプリ開発を試してみた
tamaki
0
150
沖縄モバイルアプリ開発勉強会#1
tamaki
0
130
iOSアプリ開発を始めよう
tamaki
0
210
詳解xcresult.pdf
tamaki
0
410
メルペイでのリグレッションテスト自動化推進のこれまでとこれから
tamaki
0
800
Other Decks in Technology
See All in Technology
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
1
820
ウェルネス SaaS × AI、1,000万ユーザーを支える 業界特化 AI プロダクト開発への道のり
hacomono
PRO
0
130
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.3k
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
420
.NET 10の概要
tomokusaba
0
120
AI駆動開発の実践とその未来
eltociear
0
190
1人1サービス開発しているチームでのClaudeCodeの使い方
noayaoshiro
1
350
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
0
150
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
540
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
RAG/Agent開発のアップデートまとめ
taka0709
0
190
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
260
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
Mobile First: as difficult as doing things right
swwweet
225
10k
Code Review Best Practice
trishagee
74
19k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Six Lessons from altMBA
skipperchong
29
4.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
Fireside Chat
paigeccino
41
3.7k
Transcript
͋ͳ͕ͨUIςετͰධՁ͍ͨ͠ͷ ɹ ԿͰ͔͢ʁ
ࣗݾհ ! ۄ৴ޛ iOS Engineer Testing/CIɾCD/HomeKit/IoT Organized try!Swift Tokyo 2019
Hosting Roppongi.swift
PEAKS͞Μ͔ΒʮiOSςετશॻʯΛग़͢͜ͱʹͳΓ·ͨ͠
Ͱɺ࢝Ί·͢
ఆٛʹϒϨΛײͨ͡ࣄͳ͍Ͱ͔͢ʁ
*ςετ
*ςετ γεςϜςετ/౷߹ςετ/݁߹ςετ/࿈݁ςετ/֎෦݁߹ς ετ/෦݁߹ςετ/ΠϯςάϨʔγϣϯςετ/֎෦ςετ/ ෦ςετ/ػೳςετ/E2Eςετ/Ϣχοτςετ/୯ମςετ/ε τϨεςετ/ಈతςετ/੩తςετ/ϗϫΠτϘοΫεςετ/ ϒϥοΫϘοΫεςετ/Ϣʔβʔςετ/डೖςετ/UIςετ/ ୳ࡧతςετ/ಉΫϥεςετ/ڥքςετ/σγδϣϯςʔ ϒϧςετ/Έ߹Θͤςετ/ঢ়ଶભҠςετ/σʔλϑϩʔς ετ/ΞυϗοΫςετ/ABςετ/ϦάϨογϣϯςετ/ճؼς
ςετʹؔΘΔ༻ޠ ςετٕ๏/ςετܭը/ςετ߲/ςετΞΠςϜ/ςετγφ ϦΦ/ςετεΟʔτ/ςετϨϕϧ/ςετϓϩηε/ςετ؍/ ςετઃܭ/ςετੳ/ςετఔ/ςετΧόϨοδ/ςετ ϕʔε/ελϒ/ϞοΫ/ςετμϒϧ/SUT/όά/ෆ۩߹/ܽؕ/ނ ো/ϑΥʔϧτ/ςεςΟϯά/νΣοΩϯά/ඇػೳςετ/ςετ λΠϓ/ςετۦಈ։ൃ/TDD/ςετϋʔωε/.....
None
༨ஊ: JSTQBͱ͔ͬͯΈΔͱָ͍͠Α http://jstqb.jp
ؓٳ
ςετϐϥϛου • UI • Service • Unit
UIςετΓ͍ͨਓ
UIςετͱͳΜͩΖ ͏ʁ • XCUITestΛ༻ͯ͠ߦ͏ςετશ ͯUIςετʁ • UIʹϑΥʔΧεͨ͠ςετΛߦ͏ς ετʁ
UIςετͱͳΜͩΖ ͏ʁ • UIʹϑΥʔΧεͨ͠ςετΛߦ͏ς ετʁ
UIςετͱͳΜͩΖ ͏ʁ • UIʹϑΥʔΧεͨ͠ςετΛߦ͏ς ετʁ • ධՁ͍ͨ͠ͷ͕ը໘ɾUIίϯϙʔ ωϯτͳͲʹͷΈͰ͋ΕϓϨθ ϯςʔγϣϯʹର͢Δ୯ମɾ݁ ߹ςετ
UIςετͱͳΜͩΖ ͏ʁ • ্ͷʹߦ͘΄Ͳෳࡶɾ݁߹͕ ૿Ճ
UIʹର͢Δςετͱ͍͏ΑΓ UIΛͬͨςετ
UIΛ͏ςετͱ • E2Eςετ • ϒϩʔυελοΫςετ • γεςϜςετ • ૯߹ςετ
͜͜·ͰUIςετͷೝࣝ߹Θͤ
ԿΛςετ͍ͨ͠ͷ͔࠶ͼࢥ͍ग़ͯ͠ΈΔ
ԿΛςετ͍ͨ͠ͷ͔࠶ͼࢥ͍ग़ͯ͠ΈΔ 1. UIʹରͯ͠ςετΛ͍ͨ͠ 2. UIΛ͏ςετΛ͍ͨ͠
▶︎1. UIʹରͯ͠ςετΛ ͍ͨ͠
XCUITestͰͳ͚Εग़དྷͳ͍ࣄ͔ʁ • ViewͷαΠζͦͷ্ʹࡌͬͯΔίϯϙʔωϯτͷҐஔͳͲ ϢχοτςετͰςετՄೳ • εΫϦʔϯγϣοτͳͲʹΑΔը૾ͰͷධՁ • iOSSnapshotTestcase https://github.com/uber/ios-snapshot-test-case
▶︎2. UIΛ͏ςετΛ͠ ͍ͨ
༷ʑͳཁҼ͕ςετΛͮ͠Β͘͢Δ • ΞϓϦ෦ͷঢ়ଶมԽ • ֎෦γεςϜͱͷ࿈ܞ
ΞϓϦ෦ͷঢ়ଶมԽΛ੍ޚ͢Δ launchArgumentslaunchEnvironmentΛͬͯىಈ࣌ʹঢ়ଶ ͷ੍ޚΛߦ͏ let app = XCUIApplication() app.launchArguments.append("loggedIn") app.launchArguments.append(contentsOf: ["-key",
"abc111222333"]) app.launchArguments.append(contentsOf: ["-skipLogin", "YES"]) app.launchEnvironment["TestMode"] = "UITest"
֎෦γεςϜͱͷ࿈ܞ ֎෦γεςϜͷ෦ΛϞοΫ·ͨελϒͯ͠ಈ࡞ͤ͞Δ • Embassy • SBTUITestTunnel • Wiremock
⚠ ɹ ͜ΕΒͷํ๏ΛऔΔࣄͰϢʔβͷૢ࡞͔Βԕ͔͟Γ·͢
༻๏༰ྔΛकͬͯਖ਼͘͠ޮՌతͰ͋ΔςετΛࢦ͠·͠ΐ͏ɻ
UIςετ͍ͭΔͷʁ • جຊతʹϢχοτςετͳͲͷςετϐϥϛουͷԼ͔Β ੵΈ্͛ͯߦ͘ͷ͕͍͍ • ↑Λཧղ্ͨ͠ͰUIςετͰΧόʔ͢ΔͷѱͰͳ͍ • ϨΨγʔίʔυͷ߹ɺϢχοτςετͷͨΊʹϦϑΝΫ λϦϯά͕ඞਢʹͳΔ͕UIςετԿͱ͔͔͚Δ߹͋ Δ
·ͱΊ • UIςετͳͲͷݴ༿ఆ͕ٛϒϨ͕ͪͳͷͰ࣠Λ࡞Ζ͏ • ఆٛʹଊΘΕΔඞཁͳ͍ɺجຊΛԡ্͑ͨ͞ͰͷΞϨϯδ ͍͍ͬͯͱࢥ͏Αʁ • ޮՌతͩͱࢥ͑ࢼͯ͠ΈΕ͍͍͠ɺτϥΠΞϯυΤϥʔ ͯ͠վળ͍͖ͯ͠·͠ΐ͏
Ҏ্