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
Automated User Interface Testing
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Tiago Martinho
May 01, 2018
Technology
0
64
Automated User Interface Testing
Tiago Martinho
May 01, 2018
Tweet
Share
More Decks by Tiago Martinho
See All by Tiago Martinho
Time Managment
tiagomartinho
0
44
BuddyBuild
tiagomartinho
0
40
Daily Journal
tiagomartinho
0
55
Everyone can code
tiagomartinho
0
37
Introduction to Machine Learning
tiagomartinho
0
47
Silicon Valley Tour
tiagomartinho
1
70
Swift Peer Lab - try! Swift Tokyo
tiagomartinho
0
90
Francigenr
tiagomartinho
1
36
Artusi Learning
tiagomartinho
0
47
Other Decks in Technology
See All in Technology
IaaS/SaaS管理における SREの実践 - SRE Kaigi 2026
bbqallstars
4
2.2k
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
640
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
190
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
460
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
110
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.3k
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
430
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
360
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
370
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
210
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
530
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
310
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
What's in a price? How to price your products and services
michaelherold
247
13k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
64
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Everyday Curiosity
cassininazir
0
130
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Transcript
Tiago Martinho @martinho_t tiagomartinho Automated User Interface Testing
None
+ User POV Black Box Testing Offload Testers
- Flaky Expensive Slow
Unit Integration UI
100x 10x x
None
Anti-Pattern
func testLogin() { application.launch() let loginButton = application.buttons["login"] loginButton.tap() wait(for:
“label") label = application.labels[“label”] assertEqual("42", label.text) }
Objectives Robust Easy to write Easy to read
AAA Arrange Act Assert
UI Driver Application Acceptance Test
UI Driver Application Model Acceptance Test
Acceptance Test No tap, click, swipe No UI references Clear
state and asserts
func testDeleteAllChannels() { model.enforce(state: .notEmptyChannelsList) model.deleteAllChannels() model.assert(condition: .emptyChannelsList) }
func testDeleteAllChannels() { model.enforce(state: .notEmptyChannelsList) model.deleteAllChannels() model.assert(condition: .emptyChannelsList) }
func testDeleteAllChannels() { model.enforce(state: .notEmptyChannelsList) model.deleteAllChannels() model.assert(state: .emptyChannelsList) }
UI Driver Application Model Acceptance Test
Application Model Represents our App Does not depend on the
UI testing Framework
None
None
None
UI Driver Application Model Acceptance Test
UI Driver Drives the UI Knows nothing about our app
Can be replaced
None
None
None
+ Knowledge Base Short and Robust Tests Framework Independent
Tiago Martinho @martinho_t tiagomartinho Thank you!