SlideShare a Scribd company logo
How to Build a Mobile Application
that is Easy to Automate?
Jun 2016
HOW TO BUILD A MOBILE APPLICATION THAT
IS EASY TO AUTOMATE?
 Select Technology
 Object identification background and challenges
 Xpath / Indexs
 Properties and considerations in Object identification
 Application navigation
 UI component, Layout and Others, Synchronization
The technology you use has a big impact on the automation process.
Using common technology removes risks.
There are 3 types of UI objects:
• Native objects – using the OS native objects. The native objects can be created directly or
using some kind of framework (like Xamarin).
• Web objects- run inside WebView (like Phonegap)
• Proprietary objects- new set of UI elements (like Adobe Flash)
Avoid technologies that are not model based
TRY TO AVOID THIS OPTION
SELECTED TECHNOLOGY
The main challenge in mobile automation is identifying UI elements.
• Automation tool sees UI as tree of nodes
• One element can contain other elements
• Every node has properties
• Common properties: text, id, hint, accessibility label, placeholder
A query needs to be created in order to identify an element.
CHALLENGE #1: OBJECT IDENTIFICATION
Syntax:
Xpath=//*[@text=‘OK’]
//- scan the UI tree from the root.
*- find any node (don’t care about the node name)
[]- that (condition)
@- the property (in this case text)
Xpath is a very common technology for identifying UI objects.
XPath
Index
What if we have more than one element that match the quarry?
• The tool will usually will select the first element in the UI
(in some tools it will be visual order, other tools will use node hierarchy order).
• Relaying your identification on index is not a good sign for your automation
robastness
Things to consider when using properties to identify objects:
• Property visibility – text / placeholder is visible to the user
• Uniqueness – id is unique for web
• Multilingual support
• Multi-platform – text / class / placeholder …
• Not dynamic
• Easy to query
• Fast to query – isVisable sometime can be slow to query
CONSIDERATIONS IN OBJECT IDENTIFICATION
Field name OS Pros. Cons.
AccessibilityIdentify/
ContentDescription
Android/iOS
 Usually unique
 Not dynamic
 Support multi lingual
 Needs development attention / awareness
Id Web
 Unique
 Fast to query
 In some technologies it is auto generated and
can change in new versions
Id Android
 Very command
 Effortless
 Multilingual
 Not Unique
Hint/Placeholder Android/iOS
 Visible
 Effortless
 Does not change with the
field content
 Inapplicable for multi lingual apps
Class Android/iOS  Effortless  Will probably require index
AccessibilityLabel iOS
 Effortless
 Good option for images
 Dynamic with the text
 Inapplicable for multi lingual apps
Text
Android/iOS/
Web
 Visible
 Unique in many cases
 Effortless
 Can be dynamic
 Inapplicable for multi lingual apps
CONSIDERATIONS IN OBJECT IDENTIFICATION
For Automation to be successful the operation that is build should be stateless.
Try to avoid unnecessary state full operations.
Stateless = executes any operation regardless of current state/page
• Example for a stateless operation: top menu button
• Example for a state-full operation: login process, first user flow
APPLICATION NAVIGATION SHOULD BE EASY
Proprietary UI elements- try to avoid using customized UI elements
UI COMPONENT, LAYOUT AND OTHERS
Don’t tweak the UI object events.
UI COMPONENT, LAYOUT AND OTHERS
Avoid using complex layers.
UI COMPONENT, LAYOUT AND OTHERS
The problem: clicking on an element that is not ready to receive the event
UI Synchronization
• Provide API on the server side for common operation: (Create User / Account)
• Manage common tests resource
Test configuration

More Related Content

Viewers also liked

Wix automation
Wix automationWix automation
Wix automation
itay shmool
 
Google, quality and you
Google, quality and youGoogle, quality and you
Google, quality and you
nelinger
 
Want To Build Your First Mobile Application For Your Business
Want To Build Your First Mobile Application For Your BusinessWant To Build Your First Mobile Application For Your Business
Want To Build Your First Mobile Application For Your Business
Chapter247 Infotech
 
Brainstormv3 Pdf
Brainstormv3 PdfBrainstormv3 Pdf
Brainstormv3 Pdf
Rick Joubert
 
Micro finance company in 3 months!
Micro finance company in 3 months!Micro finance company in 3 months!
Micro finance company in 3 months!
Artjoms Krizanovskis
 
DWS16 - Fintech forum - Yves Gassot, IDATE DigiWorld
DWS16 - Fintech forum - Yves Gassot, IDATE DigiWorldDWS16 - Fintech forum - Yves Gassot, IDATE DigiWorld
DWS16 - Fintech forum - Yves Gassot, IDATE DigiWorld
IDATE DigiWorld
 
Responsive Web Design testing using Galen Framework
Responsive Web Design testing using Galen FrameworkResponsive Web Design testing using Galen Framework
Responsive Web Design testing using Galen Framework
Birudugadda Pranathi
 
Veber Fintech Event September 2016
Veber Fintech Event September 2016Veber Fintech Event September 2016
Veber Fintech Event September 2016
Neil Laver
 
Money Of The Future 1H'2016
Money Of The Future 1H'2016Money Of The Future 1H'2016
Money Of The Future 1H'2016
Vladislav Solodkiy
 
Selenium Based Visual Test Automation
Selenium Based Visual Test AutomationSelenium Based Visual Test Automation
Selenium Based Visual Test Automation
adamcarmi
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
MatanGoren
 
History Of The Development Of Mobile Applications
History Of The Development Of Mobile ApplicationsHistory Of The Development Of Mobile Applications
History Of The Development Of Mobile Applications
emmaroberts477
 
Mobile Application Architecture Strategy
Mobile Application Architecture StrategyMobile Application Architecture Strategy
Mobile Application Architecture Strategy
Gary Wong
 
Choosing the Best Open Source Test Automation Tool for You
Choosing the Best Open Source Test Automation Tool for YouChoosing the Best Open Source Test Automation Tool for You
Choosing the Best Open Source Test Automation Tool for You
Perfecto by Perforce
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
Max Klymyshyn
 
Mobile application design trend & history
Mobile application design trend & historyMobile application design trend & history
Mobile application design trend & history
Rawin Windygallery
 
Kubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformKubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platform
LivePerson
 
Wix Automation Infrastructure
Wix Automation InfrastructureWix Automation Infrastructure
Wix Automation Infrastructure
ilan tal
 

Viewers also liked (19)

Wix automation
Wix automationWix automation
Wix automation
 
Google, quality and you
Google, quality and youGoogle, quality and you
Google, quality and you
 
Want To Build Your First Mobile Application For Your Business
Want To Build Your First Mobile Application For Your BusinessWant To Build Your First Mobile Application For Your Business
Want To Build Your First Mobile Application For Your Business
 
Brainstormv3 Pdf
Brainstormv3 PdfBrainstormv3 Pdf
Brainstormv3 Pdf
 
Micro finance company in 3 months!
Micro finance company in 3 months!Micro finance company in 3 months!
Micro finance company in 3 months!
 
DWS16 - Fintech forum - Yves Gassot, IDATE DigiWorld
DWS16 - Fintech forum - Yves Gassot, IDATE DigiWorldDWS16 - Fintech forum - Yves Gassot, IDATE DigiWorld
DWS16 - Fintech forum - Yves Gassot, IDATE DigiWorld
 
Bank 3.0
Bank 3.0Bank 3.0
Bank 3.0
 
Responsive Web Design testing using Galen Framework
Responsive Web Design testing using Galen FrameworkResponsive Web Design testing using Galen Framework
Responsive Web Design testing using Galen Framework
 
Veber Fintech Event September 2016
Veber Fintech Event September 2016Veber Fintech Event September 2016
Veber Fintech Event September 2016
 
Money Of The Future 1H'2016
Money Of The Future 1H'2016Money Of The Future 1H'2016
Money Of The Future 1H'2016
 
Selenium Based Visual Test Automation
Selenium Based Visual Test AutomationSelenium Based Visual Test Automation
Selenium Based Visual Test Automation
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
 
History Of The Development Of Mobile Applications
History Of The Development Of Mobile ApplicationsHistory Of The Development Of Mobile Applications
History Of The Development Of Mobile Applications
 
Mobile Application Architecture Strategy
Mobile Application Architecture StrategyMobile Application Architecture Strategy
Mobile Application Architecture Strategy
 
Choosing the Best Open Source Test Automation Tool for You
Choosing the Best Open Source Test Automation Tool for YouChoosing the Best Open Source Test Automation Tool for You
Choosing the Best Open Source Test Automation Tool for You
 
Testing with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous DeploymentTesting with Jenkins, Selenium and Continuous Deployment
Testing with Jenkins, Selenium and Continuous Deployment
 
Mobile application design trend & history
Mobile application design trend & historyMobile application design trend & history
Mobile application design trend & history
 
Kubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platformKubernetes your tests! automation with docker on google cloud platform
Kubernetes your tests! automation with docker on google cloud platform
 
Wix Automation Infrastructure
Wix Automation InfrastructureWix Automation Infrastructure
Wix Automation Infrastructure
 

Similar to Build mobile application that is easy to automate

Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
Ivano Malavolta
 
Uniface Lectures Webinar - Extending Applications for Mobile
Uniface Lectures Webinar - Extending Applications for Mobile Uniface Lectures Webinar - Extending Applications for Mobile
Uniface Lectures Webinar - Extending Applications for Mobile
Uniface
 
Doag wysiwyg
Doag wysiwygDoag wysiwyg
Doag wysiwyg
Luc Bors
 
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOPIntroduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
KeyLimeTie
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Bala Subra
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
Kunjan Thakkar
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
Graham Weldon
 
The iOS technical interview: get your dream job as an iOS developer
The iOS technical interview: get your dream job as an iOS developerThe iOS technical interview: get your dream job as an iOS developer
The iOS technical interview: get your dream job as an iOS developer
Juan C Catalan
 
First step in android
First step in androidFirst step in android
First step in android
KS Technologies Vadodara
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
balunasj
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Axel Buerkle
 
Introduction to Mobile applications testing (english)
Introduction to Mobile applications testing (english)Introduction to Mobile applications testing (english)
Introduction to Mobile applications testing (english)
Oleg Nikiforov
 
Going Mobile !
Going Mobile !Going Mobile !
Going Mobile !
Christopher Duffy
 
Neil Perlin - We're Going Mobile! Great! Are We Ready?
Neil Perlin - We're Going Mobile! Great! Are We Ready?Neil Perlin - We're Going Mobile! Great! Are We Ready?
Neil Perlin - We're Going Mobile! Great! Are We Ready?
LavaConConference
 
Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?
Chris Saez
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
Hayden Bleasel
 
Mobilizing your Drupal Site - Vancouver League of Drupallers
Mobilizing your Drupal Site - Vancouver League of DrupallersMobilizing your Drupal Site - Vancouver League of Drupallers
Mobilizing your Drupal Site - Vancouver League of Drupallers
baronmunchowsen
 
Kumar kunal
Kumar kunalKumar kunal
Kumar kunal
kumar kunal
 

Similar to Build mobile application that is easy to automate (20)

Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app Anatomy of an HTML 5 mobile web app
Anatomy of an HTML 5 mobile web app
 
Uniface Lectures Webinar - Extending Applications for Mobile
Uniface Lectures Webinar - Extending Applications for Mobile Uniface Lectures Webinar - Extending Applications for Mobile
Uniface Lectures Webinar - Extending Applications for Mobile
 
MKT 460 Week 3
MKT 460 Week 3MKT 460 Week 3
MKT 460 Week 3
 
Doag wysiwyg
Doag wysiwygDoag wysiwyg
Doag wysiwyg
 
Mkt460 Week3
Mkt460 Week3Mkt460 Week3
Mkt460 Week3
 
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOPIntroduction to iPhone App Development - midVentures DESIGN+DEVELOP
Introduction to iPhone App Development - midVentures DESIGN+DEVELOP
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
An introduction to Titanium
An introduction to TitaniumAn introduction to Titanium
An introduction to Titanium
 
The iOS technical interview: get your dream job as an iOS developer
The iOS technical interview: get your dream job as an iOS developerThe iOS technical interview: get your dream job as an iOS developer
The iOS technical interview: get your dream job as an iOS developer
 
First step in android
First step in androidFirst step in android
First step in android
 
The Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java DeveloperThe Mobile Web Revealed For The Java Developer
The Mobile Web Revealed For The Java Developer
 
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha TouchBuilding Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
Building Cross-Platform Mobile Apps with PhoneGap and Sencha Touch
 
Introduction to Mobile applications testing (english)
Introduction to Mobile applications testing (english)Introduction to Mobile applications testing (english)
Introduction to Mobile applications testing (english)
 
Going Mobile !
Going Mobile !Going Mobile !
Going Mobile !
 
Neil Perlin - We're Going Mobile! Great! Are We Ready?
Neil Perlin - We're Going Mobile! Great! Are We Ready?Neil Perlin - We're Going Mobile! Great! Are We Ready?
Neil Perlin - We're Going Mobile! Great! Are We Ready?
 
Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?
 
Tech Thursdays: Building Products
Tech Thursdays: Building ProductsTech Thursdays: Building Products
Tech Thursdays: Building Products
 
Mobilizing your Drupal Site - Vancouver League of Drupallers
Mobilizing your Drupal Site - Vancouver League of DrupallersMobilizing your Drupal Site - Vancouver League of Drupallers
Mobilizing your Drupal Site - Vancouver League of Drupallers
 
Kumar kunal
Kumar kunalKumar kunal
Kumar kunal
 

More from adamcarmi

Introduction to automated visual testing
Introduction to automated visual testingIntroduction to automated visual testing
Introduction to automated visual testing
adamcarmi
 
Building Universal Servers (On-prem meets Azure PAAS)
Building Universal Servers (On-prem meets Azure PAAS)Building Universal Servers (On-prem meets Azure PAAS)
Building Universal Servers (On-prem meets Azure PAAS)
adamcarmi
 
Advanced automated visual testing with Selenium
Advanced automated visual testing with SeleniumAdvanced automated visual testing with Selenium
Advanced automated visual testing with Selenium
adamcarmi
 
Advanced Automated Visual Testing
Advanced Automated Visual TestingAdvanced Automated Visual Testing
Advanced Automated Visual Testing
adamcarmi
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With SeleniumSeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Selenium
adamcarmi
 
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFTAdvanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
adamcarmi
 
Advanced Visual Test Automation with Selenium
Advanced Visual Test Automation with SeleniumAdvanced Visual Test Automation with Selenium
Advanced Visual Test Automation with Selenium
adamcarmi
 
Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With SeleniumAdvanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Selenium
adamcarmi
 
Advanced Automated Visual Testing for Mobile Apps
Advanced Automated Visual Testing for Mobile AppsAdvanced Automated Visual Testing for Mobile Apps
Advanced Automated Visual Testing for Mobile Apps
adamcarmi
 
Automated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not SuckAutomated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not Suck
adamcarmi
 
Selenium Automation at Incapsula
Selenium Automation at IncapsulaSelenium Automation at Incapsula
Selenium Automation at Incapsula
adamcarmi
 
Jenkins & Selenium
Jenkins & SeleniumJenkins & Selenium
Jenkins & Selenium
adamcarmi
 
An Overview of Selenium
An Overview of SeleniumAn Overview of Selenium
An Overview of Selenium
adamcarmi
 

More from adamcarmi (13)

Introduction to automated visual testing
Introduction to automated visual testingIntroduction to automated visual testing
Introduction to automated visual testing
 
Building Universal Servers (On-prem meets Azure PAAS)
Building Universal Servers (On-prem meets Azure PAAS)Building Universal Servers (On-prem meets Azure PAAS)
Building Universal Servers (On-prem meets Azure PAAS)
 
Advanced automated visual testing with Selenium
Advanced automated visual testing with SeleniumAdvanced automated visual testing with Selenium
Advanced automated visual testing with Selenium
 
Advanced Automated Visual Testing
Advanced Automated Visual TestingAdvanced Automated Visual Testing
Advanced Automated Visual Testing
 
SeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With SeleniumSeConf2015: Advanced Automated Visual Testing With Selenium
SeConf2015: Advanced Automated Visual Testing With Selenium
 
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFTAdvanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
Advanced Cross-Browser Visual Testing with Applitools Eyes and HP LeanFT
 
Advanced Visual Test Automation with Selenium
Advanced Visual Test Automation with SeleniumAdvanced Visual Test Automation with Selenium
Advanced Visual Test Automation with Selenium
 
Advanced Visual Test Automation With Selenium
Advanced Visual Test Automation With SeleniumAdvanced Visual Test Automation With Selenium
Advanced Visual Test Automation With Selenium
 
Advanced Automated Visual Testing for Mobile Apps
Advanced Automated Visual Testing for Mobile AppsAdvanced Automated Visual Testing for Mobile Apps
Advanced Automated Visual Testing for Mobile Apps
 
Automated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not SuckAutomated Visual Testing That Does Not Suck
Automated Visual Testing That Does Not Suck
 
Selenium Automation at Incapsula
Selenium Automation at IncapsulaSelenium Automation at Incapsula
Selenium Automation at Incapsula
 
Jenkins & Selenium
Jenkins & SeleniumJenkins & Selenium
Jenkins & Selenium
 
An Overview of Selenium
An Overview of SeleniumAn Overview of Selenium
An Overview of Selenium
 

Recently uploaded

Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 

Recently uploaded (20)

Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 

Build mobile application that is easy to automate

  • 1. How to Build a Mobile Application that is Easy to Automate? Jun 2016
  • 2. HOW TO BUILD A MOBILE APPLICATION THAT IS EASY TO AUTOMATE?  Select Technology  Object identification background and challenges  Xpath / Indexs  Properties and considerations in Object identification  Application navigation  UI component, Layout and Others, Synchronization
  • 3. The technology you use has a big impact on the automation process. Using common technology removes risks. There are 3 types of UI objects: • Native objects – using the OS native objects. The native objects can be created directly or using some kind of framework (like Xamarin). • Web objects- run inside WebView (like Phonegap) • Proprietary objects- new set of UI elements (like Adobe Flash) Avoid technologies that are not model based TRY TO AVOID THIS OPTION SELECTED TECHNOLOGY
  • 4. The main challenge in mobile automation is identifying UI elements. • Automation tool sees UI as tree of nodes • One element can contain other elements • Every node has properties • Common properties: text, id, hint, accessibility label, placeholder A query needs to be created in order to identify an element. CHALLENGE #1: OBJECT IDENTIFICATION
  • 5. Syntax: Xpath=//*[@text=‘OK’] //- scan the UI tree from the root. *- find any node (don’t care about the node name) []- that (condition) @- the property (in this case text) Xpath is a very common technology for identifying UI objects. XPath
  • 6. Index What if we have more than one element that match the quarry? • The tool will usually will select the first element in the UI (in some tools it will be visual order, other tools will use node hierarchy order). • Relaying your identification on index is not a good sign for your automation robastness
  • 7. Things to consider when using properties to identify objects: • Property visibility – text / placeholder is visible to the user • Uniqueness – id is unique for web • Multilingual support • Multi-platform – text / class / placeholder … • Not dynamic • Easy to query • Fast to query – isVisable sometime can be slow to query CONSIDERATIONS IN OBJECT IDENTIFICATION
  • 8. Field name OS Pros. Cons. AccessibilityIdentify/ ContentDescription Android/iOS  Usually unique  Not dynamic  Support multi lingual  Needs development attention / awareness Id Web  Unique  Fast to query  In some technologies it is auto generated and can change in new versions Id Android  Very command  Effortless  Multilingual  Not Unique Hint/Placeholder Android/iOS  Visible  Effortless  Does not change with the field content  Inapplicable for multi lingual apps Class Android/iOS  Effortless  Will probably require index AccessibilityLabel iOS  Effortless  Good option for images  Dynamic with the text  Inapplicable for multi lingual apps Text Android/iOS/ Web  Visible  Unique in many cases  Effortless  Can be dynamic  Inapplicable for multi lingual apps CONSIDERATIONS IN OBJECT IDENTIFICATION
  • 9. For Automation to be successful the operation that is build should be stateless. Try to avoid unnecessary state full operations. Stateless = executes any operation regardless of current state/page • Example for a stateless operation: top menu button • Example for a state-full operation: login process, first user flow APPLICATION NAVIGATION SHOULD BE EASY
  • 10. Proprietary UI elements- try to avoid using customized UI elements UI COMPONENT, LAYOUT AND OTHERS
  • 11. Don’t tweak the UI object events. UI COMPONENT, LAYOUT AND OTHERS
  • 12. Avoid using complex layers. UI COMPONENT, LAYOUT AND OTHERS
  • 13. The problem: clicking on an element that is not ready to receive the event UI Synchronization
  • 14. • Provide API on the server side for common operation: (Create User / Account) • Manage common tests resource Test configuration