SlideShare a Scribd company logo
IOS UI Automation
François Reynaud
Test engineer, eBay
Agenda
• Introduction
• Selenium
• Native
• Hybrid
• Real device
• Scaling
François Reynaud- EBAY INTERNATIONAL 2
Introduction
•EUQE
•Selenium committer
•History
•Current focus
François Reynaud- EBAY INTERNATIONAL 3
Selenium
• What selenium is about
– Browser automation tool
– Clean API, draft for the W3C
• Why Selenium for mobile testing ?
– API works for mobile
– API stability makes development easy
– Reusability
François Reynaud- EBAY INTERNATIONAL 4
Goal
Cut down regression time for the eBay IOS products.
•4 Native apps
•Hybrid apps and mobile web
•reuse existing tools if possible
•open source ( = no eBay specific features )
François Reynaud- EBAY INTERNATIONAL 5
The project
Status : version 0.6
Visible on github
•https://github.com/ios-driver/ios-driver
Documentation
•http://ios-driver.github.com/ios-driver/
Getting help
•IRC : #ios-driver on freenode
•Google group : ios-driver
François Reynaud- EBAY INTERNATIONAL 6
The team
François Reynaud- EBAY INTERNATIONAL 7
Luke Inman Semerau
IPhone driver
Graham Abell
NativeDriver fork
François Reynaud
Grid2, TWIN
Technical choices - Selenium
– No modification of the application
– Language / test framework shouldn’t matter
– A stable API / recognized is the key
François Reynaud- EBAY INTERNATIONAL 8
Native : Instruments
François Reynaud- EBAY INTERNATIONAL 9
Instruments – integration capabilities
François Reynaud- EBAY INTERNATIONAL 10
Design
François Reynaud- EBAY INTERNATIONAL 11
Client Server
WebDriver API
ios-driver
Java
C#
Ruby
Python
Writing tests
François Reynaud- EBAY INTERNATIONAL 12
Challenge 1 - content
François Reynaud- EBAY INTERNATIONAL 13
Challenge 1 - content
François Reynaud- EBAY INTERNATIONAL 14
Challenge 1 - content
François Reynaud- EBAY INTERNATIONAL 15
Challenge 2 - inspector
François Reynaud- EBAY INTERNATIONAL 16
Hybrid - UIWebView
17François Reynaud- EBAY INTERNATIONAL
WebKit Remote Debug Protocol
18François Reynaud- EBAY INTERNATIONAL
integration
19François Reynaud- EBAY INTERNATIONAL
Safari
20François Reynaud- EBAY INTERNATIONAL
Real device
Not very different :
– Instruments works on real device
– WKRDP works on real device
Limitation :
– Cannot change global settings
– Need to handle app signing
François Reynaud- EBAY INTERNATIONAL 21
Scaling using Selenium Grid
François Reynaud- EBAY INTERNATIONAL 22
Client
serverHubClient
CI
server
server
THANK YOU!
QUESTIONS?

More Related Content

What's hot

Apache Cordova - State of the Union 2014
Apache Cordova  - State of the Union 2014Apache Cordova  - State of the Union 2014
Apache Cordova - State of the Union 2014
Shazron Abdullah
 
Firefox os
Firefox osFirefox os
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails BackendBuilding iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Andrew Chalkley
 
Selenium introduction
Selenium introductionSelenium introduction
Selenium introduction
HGanesh
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
Craig Dunn
 
3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases
Drew Hannay
 
Hybrid Mobile application
Hybrid Mobile applicationHybrid Mobile application
Hybrid Mobile application
Sanjay Patel
 
Improving Android app testing with Appium and Sauce Labs
Improving Android app testing with Appium and Sauce LabsImproving Android app testing with Appium and Sauce Labs
Improving Android app testing with Appium and Sauce Labs
Isaac Murchie
 
Mobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMichael Palotas
 
FIREFOX OS
FIREFOX OSFIREFOX OS
FIREFOX OS
Tousif Baddemalic
 
WordPress Mobile Apps - WordCamp San Antonio 2015
WordPress Mobile Apps - WordCamp San Antonio 2015WordPress Mobile Apps - WordCamp San Antonio 2015
WordPress Mobile Apps - WordCamp San Antonio 2015
Aaron Douglas
 
Getting Started With bots
Getting Started With botsGetting Started With bots
Getting Started With bots
Gaurav sharma
 
Mobile automation using appium.pptx
Mobile automation using appium.pptxMobile automation using appium.pptx
Mobile automation using appium.pptx
Sai Krishna
 
Chef NYC Users' Group - Announcements for June 2014
Chef NYC Users' Group - Announcements for June 2014Chef NYC Users' Group - Announcements for June 2014
Chef NYC Users' Group - Announcements for June 2014Julian Dunn
 
WSO2Con EU 2016: How to Contribute to WSO2 : Community Process
WSO2Con EU 2016: How to Contribute to WSO2 :  Community ProcessWSO2Con EU 2016: How to Contribute to WSO2 :  Community Process
WSO2Con EU 2016: How to Contribute to WSO2 : Community Process
WSO2
 
Buck outside Valley
Buck outside ValleyBuck outside Valley
Buck outside Valley
Bruno Rocha
 
AP Setup Using Oxalis
AP Setup Using OxalisAP Setup Using Oxalis
AP Setup Using Oxalis
Nap Ramirez
 

What's hot (19)

Apache Cordova - State of the Union 2014
Apache Cordova  - State of the Union 2014Apache Cordova  - State of the Union 2014
Apache Cordova - State of the Union 2014
 
What's new in Rails 4.1
What's new in Rails 4.1What's new in Rails 4.1
What's new in Rails 4.1
 
Firefox os
Firefox osFirefox os
Firefox os
 
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails BackendBuilding iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
 
Selenium introduction
Selenium introductionSelenium introduction
Selenium introduction
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases3x3: Speeding Up Mobile Releases
3x3: Speeding Up Mobile Releases
 
Hybrid Mobile application
Hybrid Mobile applicationHybrid Mobile application
Hybrid Mobile application
 
Improving Android app testing with Appium and Sauce Labs
Improving Android app testing with Appium and Sauce LabsImproving Android app testing with Appium and Sauce Labs
Improving Android app testing with Appium and Sauce Labs
 
Mobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driver
 
FIREFOX OS
FIREFOX OSFIREFOX OS
FIREFOX OS
 
WordPress Mobile Apps - WordCamp San Antonio 2015
WordPress Mobile Apps - WordCamp San Antonio 2015WordPress Mobile Apps - WordCamp San Antonio 2015
WordPress Mobile Apps - WordCamp San Antonio 2015
 
Getting Started With bots
Getting Started With botsGetting Started With bots
Getting Started With bots
 
Mobile automation using appium.pptx
Mobile automation using appium.pptxMobile automation using appium.pptx
Mobile automation using appium.pptx
 
Chef NYC Users' Group - Announcements for June 2014
Chef NYC Users' Group - Announcements for June 2014Chef NYC Users' Group - Announcements for June 2014
Chef NYC Users' Group - Announcements for June 2014
 
WSO2Con EU 2016: How to Contribute to WSO2 : Community Process
WSO2Con EU 2016: How to Contribute to WSO2 :  Community ProcessWSO2Con EU 2016: How to Contribute to WSO2 :  Community Process
WSO2Con EU 2016: How to Contribute to WSO2 : Community Process
 
Buck outside Valley
Buck outside ValleyBuck outside Valley
Buck outside Valley
 
AP Setup Using Oxalis
AP Setup Using OxalisAP Setup Using Oxalis
AP Setup Using Oxalis
 
monkeyTalk
monkeyTalkmonkeyTalk
monkeyTalk
 

Similar to CodeFest 2013. François Reynaud. — Tools for mobile automation are nothing special

Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copyDavid O'Dowd
 
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and SuccessesAutomated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
Ted Drake
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deployment
Alan Harper
 
Advanced Appium
Advanced AppiumAdvanced Appium
Advanced Appium
Dan Cuellar
 
手機自動化測試和持續整合
手機自動化測試和持續整合手機自動化測試和持續整合
手機自動化測試和持續整合
Carl Su
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaShekhar Gulati
 
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
Peter Sabev
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyone
Tft Us
 
DeveloperDeveloperDeveloper! Sydney 2012
DeveloperDeveloperDeveloper! Sydney 2012DeveloperDeveloperDeveloper! Sydney 2012
DeveloperDeveloperDeveloper! Sydney 2012
kittenthecat
 
Selenium Overview - By Adam Carmi
Selenium Overview - By Adam CarmiSelenium Overview - By Adam Carmi
Selenium Overview - By Adam Carmi
Applitools
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
Vlad Filippov
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
Aleksejs Trescalins
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Jeffrey T. Fritz
 
Automation using Javascript
Automation using JavascriptAutomation using Javascript
Automation using Javascript
khanhdang1214
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play framework
Suman Adak
 
Heroku cloud platform
Heroku cloud platformHeroku cloud platform
Heroku cloud platform
Hasan Khatib
 
What is Firefox OS
What is Firefox OSWhat is Firefox OS
What is Firefox OS
Chit Thiri Maung
 
Tech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIsTech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIs
Gavin Cornwell
 
AFNetworking
AFNetworking AFNetworking
AFNetworking
joaopmaia
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
jaxarcsig
 

Similar to CodeFest 2013. François Reynaud. — Tools for mobile automation are nothing special (20)

Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copy
 
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and SuccessesAutomated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
 
Continuous integration & deployment
Continuous integration & deploymentContinuous integration & deployment
Continuous integration & deployment
 
Advanced Appium
Advanced AppiumAdvanced Appium
Advanced Appium
 
手機自動化測試和持續整合
手機自動化測試和持續整合手機自動化測試和持續整合
手機自動化測試和持續整合
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache Cordova
 
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 201510 Useful Testing Tools for Open Source Projects @ TuxCon 2015
10 Useful Testing Tools for Open Source Projects @ TuxCon 2015
 
Selenium for everyone
Selenium for everyoneSelenium for everyone
Selenium for everyone
 
DeveloperDeveloperDeveloper! Sydney 2012
DeveloperDeveloperDeveloper! Sydney 2012DeveloperDeveloperDeveloper! Sydney 2012
DeveloperDeveloperDeveloper! Sydney 2012
 
Selenium Overview - By Adam Carmi
Selenium Overview - By Adam CarmiSelenium Overview - By Adam Carmi
Selenium Overview - By Adam Carmi
 
jQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript TestingjQuery Chicago 2014 - Next-generation JavaScript Testing
jQuery Chicago 2014 - Next-generation JavaScript Testing
 
Appium - test automation for mobile apps
Appium - test automation for mobile appsAppium - test automation for mobile apps
Appium - test automation for mobile apps
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
 
Automation using Javascript
Automation using JavascriptAutomation using Javascript
Automation using Javascript
 
Modern Web Framework : Play framework
Modern Web Framework : Play frameworkModern Web Framework : Play framework
Modern Web Framework : Play framework
 
Heroku cloud platform
Heroku cloud platformHeroku cloud platform
Heroku cloud platform
 
What is Firefox OS
What is Firefox OSWhat is Firefox OS
What is Firefox OS
 
Tech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIsTech Talk Live - 5.2 REST APIs
Tech Talk Live - 5.2 REST APIs
 
AFNetworking
AFNetworking AFNetworking
AFNetworking
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
 

More from CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
CodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
CodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
CodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
CodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
CodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
CodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
CodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
CodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
CodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
CodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
CodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
CodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
CodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
CodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
CodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
CodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
CodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
CodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
CodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
CodeFest
 

More from CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

Recently uploaded

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 

Recently uploaded (20)

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

CodeFest 2013. François Reynaud. — Tools for mobile automation are nothing special

Editor's Notes

  1. Me:Joined eBay 8 years ago.1) part of the EUQE =European Quality engineering team. Small team :About 15 people testing everything that impacts the 12 european sites.Large scope :12 web sites, windows desktop application ( Turbo Lister ) and Mobile-> no in house tools. Use open source if possible, and create and open source all tools created.2) Selenium committer, project lead for Selenium Grid.3) History :Web test : done with seleniumWindows desktop test : done with TWIN ( open sourced : https://code.google.com/p/twin/ ) Scalability / architecture : done with selenium grid ( part of the selenium project )4) Current focusMobile : current focus. I’m focusing on IOS. DominikDary focuses on Android.Goal is to integrate with what we already have
  2. Selenium is at the core of all our automation.What is selenium :a browser automation tool ( not a test framework )Clean design that allowTo use any language / any test framework to write the testsRun the tests in parallel against all major browsersX-browser , super stable API : tests written today for firefox will run tomorrow on the next chrome versionBecoming a W3C standard – no going away any time soon. Why selenium for Mobile :selenium’s strength is its API that describes user interactions.Those users interactions can be applied directly to mobile. A subset of it, some interaction do not exist in the mobile world : mouse move, mouse overMore commands can be added using the vendor extension section of the selenium protocolHaving this stable API allows to write tests while working on the driver. When bugs are fixed, and features added, there is no need to refactor the tests already written. Reusability :By following the same design for mobile, we can significantly reduce the effort it takes to write tests. The same design and abstraction can be applied to mobile, and all the mocks and helper classes can be reused. For eBay, starting mobile automation in a selenium envt means 50% of the work is already done ( create users, items, DB access )
  3. Business goal :1) eBay releases 4 native apps for IOSThose apps have to be tested by the EU team already testing Web and windows desktop.The goal of our automation is NOT to automate everything, but rather to :Get rid of the repetitive tasks Free resources to have more time for exploratory testingA typical task we don’t do with any of our automation is layout validation. We only validate functionalities.2) Mobile web is also a big focus. Long term plan :eBay isn’t a framework company. We can’t afford dedicating resources on framework maintenance.So we reuse what we can, and open source to have the testing community help with the maintenance.This has worked perfectly so far.
  4. Version 0.6Main functionality are working and tests can be writtenbut there is still a lot of polishing to doVisible on github. Contributors welcome. The project is in C, Java and Javascript.Best way to get interactive help : IRC
  5. Open source project. Does belong to a single company. Several experienced people already :2 selenium committersCurrent maintainer of the NativeDriver community fork
  6. I’ve been a user and contributor for Selenium, and I believe the selenium approach to testing is the correct one :1) The application under tests shouldn’t have to be modified to be tested2) A browser automation / mobile automation framework shouldn’t force a user to choose a testing framework , or testing methodology.It’s not the role of the mobile framework to decide vsTestNG or Junit in the java world.It’s “ to decide is BDD should be used or not.The key is integration. Most likely users will already have something in place when they start mobile automation.3) Rewriting all the tests each time the implementation of the framework changes isn’t an option.
  7. First part I worked on was Native app.We are in an IOS world, so looking at Apple tools is a good start.For Native apps, Apple provides the Instruments tools - great tools - does all the heavy lifting : takes the application, and allow to inspect it and generate user interaction - integrated in the apple tool suite - language is JS : coming from a Web world,it makes it easy.Some drawback - integration with non apple suite ( anything not part of the Apple UI really ) isn’t easy - browsing the native object tree isn’t pleasant. A nicer API is needed.
  8. Thankfully, instruments comes with 2 handy features :Instruments can be started without the UIInstruments scripts can communicates with other processes using performTask.That allows to build a framework that leverages all the good features of Instruments :No modification of the appApple support, so new SDK recognized when launchedAnd can improve the not so good parts of it, making it as easy to use as Selenium
  9. Green boxes are what a tester will see. That code isn’t part of ios-driver, it’s taken as is from the Selenium project.The part ios-driver is about id the server side, the part wrapping instruments, and controlling the device / simulator ( setup, teardown of apps )Allow remote executionMap the instruments command to the selenium ones.
  10. Writing a ios mobile test becomes easy :No particular setup needed, just a mac with Xcode in the path and ios-server runningAny test Framework can be used.It uses plain selenium client. Example is in Java, but all client bindings will work.
  11. Main challenge for multi language apps is content.There is no ID like for web testing, and all selectors are heavily relying on content.The screenshot is an example of the International mountain app, the l10n example from apple.The app functionality is the same for all locale, but you need the content to target the elements.
  12. Fortunately the content is available in the app.Each piece of content is generated from a key ( assuming the app content isn’t hardcoded ).Ios-driver uses that and allow tests to pass the content key as a selector, translating it on the fly based on the locale.
  13. -That is what the selector becomes.- It’s not as easy as using an ID for a regular webpage, but it’s close enoughIt only help validating the functionality of the app, it assumes the translation in the app files are correct.To validate the translation itself, a different mechanism should be used.
  14. The 2nd challenge is the lack of inspector.When working on a webpage, I always need firebug on the chrome console opened to see what happens. We need something similar for ios.+ demo here if time.https://dl.dropbox.com/u/24687868/presentations/inspector_record.mov
  15. When all that is done, the native part of the ios apps can be automated.This is only half if what needs to be done to have a fully working IOS solution.Hybrid apps ( native apps with some html content cannot be properly automated using native API )Mobile web : same issue ( mobile safari is an hybrid app where 99% of the work happens in the webviews )
  16. Since IOS 6.0, there is a solution to that problem : we can use the WKRDP ( webkit remote debug protocol )If your device ( simulator, or USB connected real device ) has a webview, the webview can be access ( read + write ) using the debug protocol.Demo : https://dl.dropbox.com/u/24687868/presentations/wkrdp.mov
  17. Instruments and WKRDP are completely separate, and can be run in parallel. So what’s left isto build a 2nd driver in ios-driver that implement all the selenium command but for webviews this time.Allows to switch from native to webview, this is done with the switch window selenium APIThat allows :- native clicks and keypress for webview ( Demo if time here )Good web selector ( by id, css selector ) on hybrid pages. navigation between frames / windows.
  18. With hybrid support, safari support comes for free.Demo multi window, demo type.https://dl.dropbox.com/u/24687868/presentations/SafariNative.mov
  19. Most of development and tests are using the simulator, because it’s easier and cheaper.However, everything also works on real device.Working with real device has some challenges though :Fixed SDK versionFixed deviceFixed locale / languageNo geolocation changesExtra work managing certificatesSlow
  20. - UI tests are slow- UI IOS tests require real device etcRunning them in parallel and managing the infrastructure is even more critical than for web automation.Using Selenium grid 2 will make a huge difference for tester.https://dl.dropbox.com/u/24687868/demo.mov