SlideShare une entreprise Scribd logo
1  sur  37
Mesut Güneş
www.testrisk.com
May 17, 2022
Ankara Testing Days 22
#atd22
Mesut Güneş
www.testrisk.com
Motto: Be part of the development team by native way!
NATIVE AUTOMATION TOOLING FOR MOBILE
APPS
Mesut Güneş
www.testrisk.com
MESUT GÜNEŞ
Staff SDET in Mobile
in/gunesmes
gunesmes
story/gunesmes
gunesmes
www.testrisk.com
gunesmes@gmail.com
Mesut Güneş
www.testrisk.com
■ Test automation
■ Mobile testing
■ Mobile automation tools
■ Native mobile automation tools
■ Benefits of native tooling
TALK INCLUDE THESE TOPICS
Mesut Güneş
www.testrisk.com
TABLE OF
CONTENTS
MOBILE
AUTOMATION
ECOSYSTEM
What we have for automation
NON-NATIVE
SOLUTIONS
How non-native tools work
01
03
02
04
05
06
NATIVE
SOLUTIONS
How native tools work
BENEFITS: HANDLING
OBJECTS
What things are handled differently
BENEFITS:
PERFORMANCE
How we can maximize the benefits
BENEFITS: TEAM
BUILDING
What kind of benefits we
can have
Mesut Güneş
www.testrisk.com
MOBILE AUTOMATION
ECOSYSTEM
01
Mesut Güneş
www.testrisk.com
Mobile applications are packages/binaries that can be installed to the users mobile
devices so that you can let them do what you want.
Mobile applications testing is installing the packages to the target devices and
performing test steps through the application in the devices.
Automation means that all the thing required for manual testing are done by
tools and scripts.
So mobile applications automation requires the followings:
● Application packages (apk / app / ipa)
● Mobile devices/emulator/simulator (Android / iOS)
● Networks
● Permissions
● etc.
WHAT IS MOBILE APPS AUTOMATION
Mesut Güneş
www.testrisk.com
What tests in what level we should test the apps.
TEST TYPES AND LEVELS
Test Level
Test Types
Functional Nonfunctional
Unit unit tests
load, stress, security, code
coverage (metric)
Integration
unit integration tests,
component
integration tests,
microservices
testing, contract test
load, stress, security
System end-to-end test
load, stress, security, reliability,
maintainability, scalability
Acceptance
uat test, alpha - beta
testing
load, stress, security, usability,
AB test
Mesut Güneş
www.testrisk.com
Identify the purpose of the automation to get a better result
Automate everything that are possible and meaningful
● Classes/Methods
● Integrations
○ Unit
○ Component
○ System
● Requirements
○ Functional
○ Non-functional
● Processes
○ Development
○ Testing
○ Distributing
WHAT TO AUTOMATE
Mesut Güneş
www.testrisk.com
Regarding the the end-to-end testing automation, it can be done by the tools that can
interact to the element of the application inside the devices.
Basically we can classify these tooling as follows
● Native toolings
○ Available inside the development framework
● Non-native tooling
○ External tools that make automation possible
HOW TO AUTOMATE
Mesut Güneş
www.testrisk.com
NON-NATIVE SOLUTIONS
02
Mesut Güneş
www.testrisk.com
Non-native mobile automation tools are external tools and interact with the mobile
application object by a server connected to the mobile apps that are running inside a
mobile device/simulator/emulator.
Non-native tooling requires a server to translate automation commands to actions on
apps for black-box testing
● Depends on server-client communication
● Depends on some native libraries that are always upgraded by manufacturer
● Totally black-box testing technique
WHAT IS NON-NATIVE TOOLING
Mesut Güneş
www.testrisk.com
Non-native toolings work with http server to interact with mobile objects
Interaction can be done by two ways
● Interact with instrumentation/UI library
○ Espresso / UIAutomator / UIAutomator2
○ Robotium
○ XCUITests / UIAutomation
● Image recognition
○ Server take screenshot and find the relevant part of the screen
HOW NON-NATIVE TOOLS WORK
Mesut Güneş
www.testrisk.com
APPIUM
Appium is one of the most popular mobile automation solution.
Its popularity comes from the following advantages:
● Familiarity with the Selenium Webdriver
● Supports most of the popular languages
● Supports multiple platforms such as Android, iOS, Windows
● Easily extent one automation code base for all projects
Mesut Güneş
www.testrisk.com
APPIUM ARCHITECTURE
Appium is a non-native automation tool whose drivers use native automation
libraries in the http server.
Image: https://digital.ai/catalyst-blog/what-is-appium-server-a-complete-end-to-end-guide
Mesut Güneş
www.testrisk.com
APPIUM CALL STEPS - iOS
A simple command reaches to the test devices by passing the
following steps
● You can write test in your favourite language
● Then the command turns into different languages in
different protocols
● This journey is two-way
● Each steps are not as mature as desired so that causes
FLAKINESS
● This is a sample for over-engineered work
● Finally it uses the XCUITest
● Risk of non-working feature until new feature
implemented by Appium community
Reference: https://www.headspin.io/blog/understanding-appium-drivers-and-how-to-choose-which-one-to-use
Mesut Güneş
www.testrisk.com
APPIUM WORKS
Appium is a non-native automation tool whose drivers use native automation
libraries in the http server.
Image: https://digital.ai/catalyst-blog/what-is-appium-server-a-complete-end-to-end-guide
Reference: https://www.headspin.io/blog/understanding-appium-drivers-and-how-to-choose-which-one-to-use
Mesut Güneş
www.testrisk.com
CALABASH
Calabash is another mobile automation tool for black-box testing. It was very
popular until 2016 but now it almost become history.
Its popularity comes from the following advantages:
● Behaviour Driven test framework for Mobile automation
● Open-Sourced project: Calabash-android and Calabash-ios
● Supports iOS and Android and Hybrid Apps (Webviews) - (Cross-platform)
● Supports simulators / emulators / real devices
● Supports CI / CD and Clouds - (CLI tools)
● Ruby Based
● Integrated Cucumber
● Calabash Console for real time automation development
Mesut Güneş
www.testrisk.com
CALABASH ARCHITECTURE
Calabash is also a non-native automation tool. Android version uses Robotium
which is an external automation library and iOS version uses XCUITest that is a
native framework.
Calabash-Android Calabash-iOS
Mesut Güneş
www.testrisk.com
NATIVE SOLUTIONS
03
Mesut Güneş
www.testrisk.com
Native mobile automation toolings are integrated libraries to the mobile application
development framework so that developers can write UI tests for the products
under development.
Native toolings are part of the development frameworks so it is guarantee that the
tools are always up to date with the development frameworks and upcoming new
features.
Since we are talking about two major mobile device operating system, we are just
focus on the following platforms:
● Android
○ Espresso
● iOS
○ XCUITest
WHAT IS NATIVE TOOLING
Mesut Güneş
www.testrisk.com
HOW NATIVE TOOLS WORK
Native tools works natively, which means that they are providing direct methods via
APIs to use inside the development project globally.
Interactions are made by directly calling the UI objects inside project architecture
by the APIs.
So these are the main benefits:
● APIs know the state of the objects
● We are free to use tool as black-box as well as
contributing the development code as white-box
● We are free to reach the UI objects
● If the app is the Matrix, native tools are the agents
inside the matrix
Mesut Güneş
www.testrisk.com
ESPRESSO - WHAT
Espresso is a test automation tool developed by Google for Android UI Tests.
Espresso is open-source, very stable and there many frameworks have been
developed around Espresso.
● It has full feature-set of Junit that works with Espresso
● Android studio provides everything you need
● It provides white-box testing
Mesut Güneş
www.testrisk.com
ESPRESSO - HOW
Mesut Güneş
www.testrisk.com
XCUITEST - WHAT
XCUITest stands for Xcode User Interface Testing and it is UI automation
framework iOS applications. XCUITest is developed on top of XCTest and
Accessibility. It is launch by Apple in 2015. It supports all iOS functionality in
terms of testing them by white-box testing techniques.
● XCUITest is native and inside the app source code with different target
● XCode provides everything you need
● It provides white-box testing
● XCTest provides everything you need for testing capabilities
● Accessibility provides UI interaction for all kind of XCode product
Mesut Güneş
www.testrisk.com
XCUITEST - HOW
Mesut Güneş
www.testrisk.com
BENEFITS: HANDLING OBJECTS
04
Mesut Güneş
www.testrisk.com
Native toolings are inside the projects so no need to worry about the use external tool
to get the related objects
Espresso and XCUITest provides the following benefits
● APIs provide methods for all kind of object
● Methods are always up-to-date with latest improvements/updates
● Freely update the source code for the sake of ui-test
NATIVELY AVAILABLE OBJECTS
Mesut Güneş
www.testrisk.com
IDEs ARE FRIENDLY
Mesut Güneş
www.testrisk.com
BENEFITS: PERFORMANCE
05
Mesut Güneş
www.testrisk.com
The performance is very important when you grow and have to handle hounderents
tests. The main point for the performance is that how much time your tests require for
running them locally and in a cloud services
● Simple UI frameworks interact with the objects so no need to translate with
servers
● Native tooling know the state of the elements so no need to check them
regularly
● Automation code is inside the test package so no need to handle it
differently while testing on the cloud. This reduce the time drastically
SERVERS --- NO
Mesut Güneş
www.testrisk.com
Simple test to compare performance of the tools shows that native toolings are always
better than Appium. This was done by TestProject engineers.
Reference: https://blog.testproject.io/2020/04/08/fastest-mobile-automation-testing-tool-appium-vs-
xcuitest-vs-testproject-vs-uiautomator-vs-espresso/
COMPARE THE PERFORMANCE
Mesut Güneş
www.testrisk.com
On cloud; Appium-client is in the CI located in Houston but Appium-server is in the cloud service
located in San Jose so this is around 1700 miles
COMPARE THE PERFORMANCE
Reference: https://www.youtube.com/watch?v=lPr5PGtWc6Y
Mesut Güneş
www.testrisk.com
BENEFITS: TEAM BUILDING
06
Mesut Güneş
www.testrisk.com
Better performance from an automation project can be only get when the developers
and testers work cooperatively. Developers are are always result oriented people so
they focus on the development of the features, but the QAs/SDETs must be keen on
the quality. This quality not only the product quality but also quality of the tests,
process, and the documentation. This can be achieved by cross-functional-team
building.
Cross-functional-team requires the followings:
● Team spirit
● Shared common knowledge, every team members
should know basics about
○ What is being built
○ How the things are developed
○ How the things are being tested
● Absence of one person from a role can be filled by from
another role
○ QA/SDET can be developer
○ Developer can be QA/SDET
BUILD TEAM AROUND QUALITY
Mesut Güneş
www.testrisk.com
How I am lucky to get those feedbacks from experienced mobile developers :)
● DEV provides testable features
● QA/SDET writes test
● When QA/SDET get familiarity with whole project, s/he can update/add missing
parts for deterministic test
● Dev are ready for making test framework better :)
BUILD TEAM AROUND QUALITY
Mesut Güneş
www.testrisk.com
CREDITS: This presentation template was created by Slidesgo, including
icons by Flaticon, and infographics & images by Freepik.
Please keep this slide for attribution.
Does anyone have any questions?
THANKS
References:
● https://developer.android.com/training/testing/espresso
● https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual
/testing_with_xcode/chapters/09-ui_testing.html
● https://appium.io/docs/en/about-appium/intro/
● https://www.browserstack.com/guide/getting-started-xcuitest-framework
● https://www.browserstack.com/guide/appium-vs-espresso
● https://blog.testproject.io/2020/04/08/fastest-mobile-automation-testing-tool-appium-
vs-xcuitest-vs-testproject-vs-uiautomator-vs-espresso/
● https://devexperts.com/blog/ios-ui-testing-frameworks-performance-comparison/

Contenu connexe

Tendances

Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with AppiumManoj Kumar Kumar
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appiumPratik Patel
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - AppiumMaria Machlowska
 
Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile AppsSauce Labs
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testingvodQA
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-AutomationMindfire Solutions
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentationconnectshilpa
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual TestingHiral Gosani
 
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaSoftware Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaEdureka!
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appiumAmbreen Khan
 
iOS: Overview, Architecture, Development & Versions
iOS: Overview, Architecture, Development & Versions iOS: Overview, Architecture, Development & Versions
iOS: Overview, Architecture, Development & Versions Sandra Kerbage
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with AgileKen McCorkell
 
Introduction to Unified Functional Testing 12 (UFT)
Introduction to Unified Functional Testing 12 (UFT)Introduction to Unified Functional Testing 12 (UFT)
Introduction to Unified Functional Testing 12 (UFT)Archana Krushnan
 
TestComplete – A Sophisticated Automated Testing Tool by SmartBear
TestComplete – A Sophisticated Automated Testing Tool by SmartBearTestComplete – A Sophisticated Automated Testing Tool by SmartBear
TestComplete – A Sophisticated Automated Testing Tool by SmartBearSoftware Testing Solution
 

Tendances (20)

Mobile Automation with Appium
Mobile Automation with AppiumMobile Automation with Appium
Mobile Automation with Appium
 
Getting started with appium
Getting started with appiumGetting started with appium
Getting started with appium
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
 
Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile Apps
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Appium
AppiumAppium
Appium
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentation
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual Testing
 
Android studio installation
Android studio installationAndroid studio installation
Android studio installation
 
Appium vs Espresso and XCUI Test
Appium vs Espresso and XCUI TestAppium vs Espresso and XCUI Test
Appium vs Espresso and XCUI Test
 
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | EdurekaSoftware Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
Software Testing Life Cycle (STLC) | Software Testing Tutorial | Edureka
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 
Manual testing ppt
Manual testing pptManual testing ppt
Manual testing ppt
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
Selenium with java
Selenium with javaSelenium with java
Selenium with java
 
iOS: Overview, Architecture, Development & Versions
iOS: Overview, Architecture, Development & Versions iOS: Overview, Architecture, Development & Versions
iOS: Overview, Architecture, Development & Versions
 
Automated Testing with Agile
Automated Testing with AgileAutomated Testing with Agile
Automated Testing with Agile
 
Introduction to Unified Functional Testing 12 (UFT)
Introduction to Unified Functional Testing 12 (UFT)Introduction to Unified Functional Testing 12 (UFT)
Introduction to Unified Functional Testing 12 (UFT)
 
TestComplete – A Sophisticated Automated Testing Tool by SmartBear
TestComplete – A Sophisticated Automated Testing Tool by SmartBearTestComplete – A Sophisticated Automated Testing Tool by SmartBear
TestComplete – A Sophisticated Automated Testing Tool by SmartBear
 

Similaire à Native automation tooling for mobile application testing.pptx

Benefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptxBenefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptxMesut Günes
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application TestingSun Technlogies
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing Shivaraj R
 
Automation Proposal_V1.0
Automation Proposal_V1.0Automation Proposal_V1.0
Automation Proposal_V1.0Dao Nhỏ
 
Testing Android Application, Droidcon Torino
Testing Android Application, Droidcon TorinoTesting Android Application, Droidcon Torino
Testing Android Application, Droidcon TorinoPietro Alberto Rossi
 
Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Maria Carcar
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation toolsSSGMCE SHEGAON
 
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 YouPerfecto by Perforce
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Perfecto Mobile
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introductionVivek Shringi
 
A Modern Dive into QA Automation and Beyond
A Modern Dive into QA Automation and BeyondA Modern Dive into QA Automation and Beyond
A Modern Dive into QA Automation and BeyondPratik Patel
 
A Complete Guide to Codeless Testing.pdf
A Complete Guide to Codeless Testing.pdfA Complete Guide to Codeless Testing.pdf
A Complete Guide to Codeless Testing.pdfpCloudy
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android ApplicationsLeif Janzik
 
Stop Testing (Only) The Functionality of Your Mobile Apps!
Stop Testing (Only) The Functionality of Your Mobile Apps!Stop Testing (Only) The Functionality of Your Mobile Apps!
Stop Testing (Only) The Functionality of Your Mobile Apps!Applitools
 
Top Automated UI Testing Tools 2023.pdf
Top Automated UI Testing Tools 2023.pdfTop Automated UI Testing Tools 2023.pdf
Top Automated UI Testing Tools 2023.pdfpcloudy2
 
Decoding Appium No-Code Test Automation With HeadSpin.pdf
Decoding Appium No-Code Test Automation With HeadSpin.pdfDecoding Appium No-Code Test Automation With HeadSpin.pdf
Decoding Appium No-Code Test Automation With HeadSpin.pdfkalichargn70th171
 
Basics of Scriptless Automation for Web and Mobile Apps (1).pdf
Basics of Scriptless Automation for Web and Mobile Apps (1).pdfBasics of Scriptless Automation for Web and Mobile Apps (1).pdf
Basics of Scriptless Automation for Web and Mobile Apps (1).pdfpcloudy2
 
Automation Testing with Test Complete
Automation Testing with Test CompleteAutomation Testing with Test Complete
Automation Testing with Test CompleteVartika Saxena
 

Similaire à Native automation tooling for mobile application testing.pptx (20)

Benefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptxBenefits of using native automation tooling for mobile application testing.pptx
Benefits of using native automation tooling for mobile application testing.pptx
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing
 
Automation Proposal_V1.0
Automation Proposal_V1.0Automation Proposal_V1.0
Automation Proposal_V1.0
 
Testing Android Application, Droidcon Torino
Testing Android Application, Droidcon TorinoTesting Android Application, Droidcon Torino
Testing Android Application, Droidcon Torino
 
Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
 
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
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 
A Modern Dive into QA Automation and Beyond
A Modern Dive into QA Automation and BeyondA Modern Dive into QA Automation and Beyond
A Modern Dive into QA Automation and Beyond
 
Automation testing
Automation testingAutomation testing
Automation testing
 
A Complete Guide to Codeless Testing.pdf
A Complete Guide to Codeless Testing.pdfA Complete Guide to Codeless Testing.pdf
A Complete Guide to Codeless Testing.pdf
 
mohit anand
 mohit anand mohit anand
mohit anand
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
 
Stop Testing (Only) The Functionality of Your Mobile Apps!
Stop Testing (Only) The Functionality of Your Mobile Apps!Stop Testing (Only) The Functionality of Your Mobile Apps!
Stop Testing (Only) The Functionality of Your Mobile Apps!
 
Top Automated UI Testing Tools 2023.pdf
Top Automated UI Testing Tools 2023.pdfTop Automated UI Testing Tools 2023.pdf
Top Automated UI Testing Tools 2023.pdf
 
Decoding Appium No-Code Test Automation With HeadSpin.pdf
Decoding Appium No-Code Test Automation With HeadSpin.pdfDecoding Appium No-Code Test Automation With HeadSpin.pdf
Decoding Appium No-Code Test Automation With HeadSpin.pdf
 
Basics of Scriptless Automation for Web and Mobile Apps (1).pdf
Basics of Scriptless Automation for Web and Mobile Apps (1).pdfBasics of Scriptless Automation for Web and Mobile Apps (1).pdf
Basics of Scriptless Automation for Web and Mobile Apps (1).pdf
 
Automation Testing with Test Complete
Automation Testing with Test CompleteAutomation Testing with Test Complete
Automation Testing with Test Complete
 

Plus de Mesut Günes

TestOps: What is it and Why we need it
TestOps: What is it and Why we need itTestOps: What is it and Why we need it
TestOps: What is it and Why we need itMesut Günes
 
Cross Platform Mobile Automation with Calabash on Cloud and More
Cross Platform Mobile Automation with Calabash on Cloud and MoreCross Platform Mobile Automation with Calabash on Cloud and More
Cross Platform Mobile Automation with Calabash on Cloud and MoreMesut Günes
 
Regular Expression (Regex) Fundamentals
Regular Expression (Regex) FundamentalsRegular Expression (Regex) Fundamentals
Regular Expression (Regex) FundamentalsMesut Günes
 
Exploring the best method of forecasting for short term electrical energy demand
Exploring the best method of forecasting for short term electrical energy demandExploring the best method of forecasting for short term electrical energy demand
Exploring the best method of forecasting for short term electrical energy demandMesut Günes
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1Mesut Günes
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Mesut Günes
 
Software development life cycle yazılım geliştirme yaşam döngüsü
Software development life cycle   yazılım geliştirme yaşam döngüsüSoftware development life cycle   yazılım geliştirme yaşam döngüsü
Software development life cycle yazılım geliştirme yaşam döngüsüMesut Günes
 
Test automation methodologies
Test automation methodologiesTest automation methodologies
Test automation methodologiesMesut Günes
 

Plus de Mesut Günes (8)

TestOps: What is it and Why we need it
TestOps: What is it and Why we need itTestOps: What is it and Why we need it
TestOps: What is it and Why we need it
 
Cross Platform Mobile Automation with Calabash on Cloud and More
Cross Platform Mobile Automation with Calabash on Cloud and MoreCross Platform Mobile Automation with Calabash on Cloud and More
Cross Platform Mobile Automation with Calabash on Cloud and More
 
Regular Expression (Regex) Fundamentals
Regular Expression (Regex) FundamentalsRegular Expression (Regex) Fundamentals
Regular Expression (Regex) Fundamentals
 
Exploring the best method of forecasting for short term electrical energy demand
Exploring the best method of forecasting for short term electrical energy demandExploring the best method of forecasting for short term electrical energy demand
Exploring the best method of forecasting for short term electrical energy demand
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
 
Software development life cycle yazılım geliştirme yaşam döngüsü
Software development life cycle   yazılım geliştirme yaşam döngüsüSoftware development life cycle   yazılım geliştirme yaşam döngüsü
Software development life cycle yazılım geliştirme yaşam döngüsü
 
Test automation methodologies
Test automation methodologiesTest automation methodologies
Test automation methodologies
 

Dernier

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14VMware Tanzu
 
Sinoville Clinic ](+27832195400*)[🏥Abortion Pill Prices Sinoville ● Women's A...
Sinoville Clinic ](+27832195400*)[🏥Abortion Pill Prices Sinoville ● Women's A...Sinoville Clinic ](+27832195400*)[🏥Abortion Pill Prices Sinoville ● Women's A...
Sinoville Clinic ](+27832195400*)[🏥Abortion Pill Prices Sinoville ● Women's A...Abortion Clinic
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbankkasambamuno
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio, Inc.
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringPrakhyath Rai
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfkalichargn70th171
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Eraconfluent
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfMehmet Akar
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfWSO2
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConNatan Silnitsky
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In sowetokasambamuno
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Soroosh Khodami
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024MulesoftMunichMeetup
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AIAGATSoftware
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfsteffenkarlsson2
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Andreas Granig
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypseTomasz Kowalczewski
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdftimtebeek1
 

Dernier (20)

Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14Spring into AI presented by Dan Vega 5/14
Spring into AI presented by Dan Vega 5/14
 
Sinoville Clinic ](+27832195400*)[🏥Abortion Pill Prices Sinoville ● Women's A...
Sinoville Clinic ](+27832195400*)[🏥Abortion Pill Prices Sinoville ● Women's A...Sinoville Clinic ](+27832195400*)[🏥Abortion Pill Prices Sinoville ● Women's A...
Sinoville Clinic ](+27832195400*)[🏥Abortion Pill Prices Sinoville ● Women's A...
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
^Clinic ^%[+27788225528*Abortion Pills For Sale In witbank
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Software Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements EngineeringSoftware Engineering - Introduction + Process Models + Requirements Engineering
Software Engineering - Introduction + Process Models + Requirements Engineering
 
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdfThe Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
The Evolution of Web App Testing_ An Ultimate Guide to Future Trends.pdf
 
Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
Abortion Clinic In Pretoria ](+27832195400*)[ 🏥 Safe Abortion Pills in Pretor...
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
architecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdfarchitecting-ai-in-the-enterprise-apis-and-applications.pdf
architecting-ai-in-the-enterprise-apis-and-applications.pdf
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
Abortion Clinic In Springs ](+27832195400*)[ 🏥 Safe Abortion Pills in Springs...
 
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
^Clinic ^%[+27788225528*Abortion Pills For Sale In soweto
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024Automate your OpenSIPS config tests - OpenSIPS Summit 2024
Automate your OpenSIPS config tests - OpenSIPS Summit 2024
 
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
[GeeCON2024] How I learned to stop worrying and love the dark silicon apocalypse
 
Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 

Native automation tooling for mobile application testing.pptx

  • 1. Mesut Güneş www.testrisk.com May 17, 2022 Ankara Testing Days 22 #atd22
  • 2. Mesut Güneş www.testrisk.com Motto: Be part of the development team by native way! NATIVE AUTOMATION TOOLING FOR MOBILE APPS
  • 3. Mesut Güneş www.testrisk.com MESUT GÜNEŞ Staff SDET in Mobile in/gunesmes gunesmes story/gunesmes gunesmes www.testrisk.com gunesmes@gmail.com
  • 4. Mesut Güneş www.testrisk.com ■ Test automation ■ Mobile testing ■ Mobile automation tools ■ Native mobile automation tools ■ Benefits of native tooling TALK INCLUDE THESE TOPICS
  • 5. Mesut Güneş www.testrisk.com TABLE OF CONTENTS MOBILE AUTOMATION ECOSYSTEM What we have for automation NON-NATIVE SOLUTIONS How non-native tools work 01 03 02 04 05 06 NATIVE SOLUTIONS How native tools work BENEFITS: HANDLING OBJECTS What things are handled differently BENEFITS: PERFORMANCE How we can maximize the benefits BENEFITS: TEAM BUILDING What kind of benefits we can have
  • 7. Mesut Güneş www.testrisk.com Mobile applications are packages/binaries that can be installed to the users mobile devices so that you can let them do what you want. Mobile applications testing is installing the packages to the target devices and performing test steps through the application in the devices. Automation means that all the thing required for manual testing are done by tools and scripts. So mobile applications automation requires the followings: ● Application packages (apk / app / ipa) ● Mobile devices/emulator/simulator (Android / iOS) ● Networks ● Permissions ● etc. WHAT IS MOBILE APPS AUTOMATION
  • 8. Mesut Güneş www.testrisk.com What tests in what level we should test the apps. TEST TYPES AND LEVELS Test Level Test Types Functional Nonfunctional Unit unit tests load, stress, security, code coverage (metric) Integration unit integration tests, component integration tests, microservices testing, contract test load, stress, security System end-to-end test load, stress, security, reliability, maintainability, scalability Acceptance uat test, alpha - beta testing load, stress, security, usability, AB test
  • 9. Mesut Güneş www.testrisk.com Identify the purpose of the automation to get a better result Automate everything that are possible and meaningful ● Classes/Methods ● Integrations ○ Unit ○ Component ○ System ● Requirements ○ Functional ○ Non-functional ● Processes ○ Development ○ Testing ○ Distributing WHAT TO AUTOMATE
  • 10. Mesut Güneş www.testrisk.com Regarding the the end-to-end testing automation, it can be done by the tools that can interact to the element of the application inside the devices. Basically we can classify these tooling as follows ● Native toolings ○ Available inside the development framework ● Non-native tooling ○ External tools that make automation possible HOW TO AUTOMATE
  • 12. Mesut Güneş www.testrisk.com Non-native mobile automation tools are external tools and interact with the mobile application object by a server connected to the mobile apps that are running inside a mobile device/simulator/emulator. Non-native tooling requires a server to translate automation commands to actions on apps for black-box testing ● Depends on server-client communication ● Depends on some native libraries that are always upgraded by manufacturer ● Totally black-box testing technique WHAT IS NON-NATIVE TOOLING
  • 13. Mesut Güneş www.testrisk.com Non-native toolings work with http server to interact with mobile objects Interaction can be done by two ways ● Interact with instrumentation/UI library ○ Espresso / UIAutomator / UIAutomator2 ○ Robotium ○ XCUITests / UIAutomation ● Image recognition ○ Server take screenshot and find the relevant part of the screen HOW NON-NATIVE TOOLS WORK
  • 14. Mesut Güneş www.testrisk.com APPIUM Appium is one of the most popular mobile automation solution. Its popularity comes from the following advantages: ● Familiarity with the Selenium Webdriver ● Supports most of the popular languages ● Supports multiple platforms such as Android, iOS, Windows ● Easily extent one automation code base for all projects
  • 15. Mesut Güneş www.testrisk.com APPIUM ARCHITECTURE Appium is a non-native automation tool whose drivers use native automation libraries in the http server. Image: https://digital.ai/catalyst-blog/what-is-appium-server-a-complete-end-to-end-guide
  • 16. Mesut Güneş www.testrisk.com APPIUM CALL STEPS - iOS A simple command reaches to the test devices by passing the following steps ● You can write test in your favourite language ● Then the command turns into different languages in different protocols ● This journey is two-way ● Each steps are not as mature as desired so that causes FLAKINESS ● This is a sample for over-engineered work ● Finally it uses the XCUITest ● Risk of non-working feature until new feature implemented by Appium community Reference: https://www.headspin.io/blog/understanding-appium-drivers-and-how-to-choose-which-one-to-use
  • 17. Mesut Güneş www.testrisk.com APPIUM WORKS Appium is a non-native automation tool whose drivers use native automation libraries in the http server. Image: https://digital.ai/catalyst-blog/what-is-appium-server-a-complete-end-to-end-guide Reference: https://www.headspin.io/blog/understanding-appium-drivers-and-how-to-choose-which-one-to-use
  • 18. Mesut Güneş www.testrisk.com CALABASH Calabash is another mobile automation tool for black-box testing. It was very popular until 2016 but now it almost become history. Its popularity comes from the following advantages: ● Behaviour Driven test framework for Mobile automation ● Open-Sourced project: Calabash-android and Calabash-ios ● Supports iOS and Android and Hybrid Apps (Webviews) - (Cross-platform) ● Supports simulators / emulators / real devices ● Supports CI / CD and Clouds - (CLI tools) ● Ruby Based ● Integrated Cucumber ● Calabash Console for real time automation development
  • 19. Mesut Güneş www.testrisk.com CALABASH ARCHITECTURE Calabash is also a non-native automation tool. Android version uses Robotium which is an external automation library and iOS version uses XCUITest that is a native framework. Calabash-Android Calabash-iOS
  • 21. Mesut Güneş www.testrisk.com Native mobile automation toolings are integrated libraries to the mobile application development framework so that developers can write UI tests for the products under development. Native toolings are part of the development frameworks so it is guarantee that the tools are always up to date with the development frameworks and upcoming new features. Since we are talking about two major mobile device operating system, we are just focus on the following platforms: ● Android ○ Espresso ● iOS ○ XCUITest WHAT IS NATIVE TOOLING
  • 22. Mesut Güneş www.testrisk.com HOW NATIVE TOOLS WORK Native tools works natively, which means that they are providing direct methods via APIs to use inside the development project globally. Interactions are made by directly calling the UI objects inside project architecture by the APIs. So these are the main benefits: ● APIs know the state of the objects ● We are free to use tool as black-box as well as contributing the development code as white-box ● We are free to reach the UI objects ● If the app is the Matrix, native tools are the agents inside the matrix
  • 23. Mesut Güneş www.testrisk.com ESPRESSO - WHAT Espresso is a test automation tool developed by Google for Android UI Tests. Espresso is open-source, very stable and there many frameworks have been developed around Espresso. ● It has full feature-set of Junit that works with Espresso ● Android studio provides everything you need ● It provides white-box testing
  • 25. Mesut Güneş www.testrisk.com XCUITEST - WHAT XCUITest stands for Xcode User Interface Testing and it is UI automation framework iOS applications. XCUITest is developed on top of XCTest and Accessibility. It is launch by Apple in 2015. It supports all iOS functionality in terms of testing them by white-box testing techniques. ● XCUITest is native and inside the app source code with different target ● XCode provides everything you need ● It provides white-box testing ● XCTest provides everything you need for testing capabilities ● Accessibility provides UI interaction for all kind of XCode product
  • 28. Mesut Güneş www.testrisk.com Native toolings are inside the projects so no need to worry about the use external tool to get the related objects Espresso and XCUITest provides the following benefits ● APIs provide methods for all kind of object ● Methods are always up-to-date with latest improvements/updates ● Freely update the source code for the sake of ui-test NATIVELY AVAILABLE OBJECTS
  • 31. Mesut Güneş www.testrisk.com The performance is very important when you grow and have to handle hounderents tests. The main point for the performance is that how much time your tests require for running them locally and in a cloud services ● Simple UI frameworks interact with the objects so no need to translate with servers ● Native tooling know the state of the elements so no need to check them regularly ● Automation code is inside the test package so no need to handle it differently while testing on the cloud. This reduce the time drastically SERVERS --- NO
  • 32. Mesut Güneş www.testrisk.com Simple test to compare performance of the tools shows that native toolings are always better than Appium. This was done by TestProject engineers. Reference: https://blog.testproject.io/2020/04/08/fastest-mobile-automation-testing-tool-appium-vs- xcuitest-vs-testproject-vs-uiautomator-vs-espresso/ COMPARE THE PERFORMANCE
  • 33. Mesut Güneş www.testrisk.com On cloud; Appium-client is in the CI located in Houston but Appium-server is in the cloud service located in San Jose so this is around 1700 miles COMPARE THE PERFORMANCE Reference: https://www.youtube.com/watch?v=lPr5PGtWc6Y
  • 35. Mesut Güneş www.testrisk.com Better performance from an automation project can be only get when the developers and testers work cooperatively. Developers are are always result oriented people so they focus on the development of the features, but the QAs/SDETs must be keen on the quality. This quality not only the product quality but also quality of the tests, process, and the documentation. This can be achieved by cross-functional-team building. Cross-functional-team requires the followings: ● Team spirit ● Shared common knowledge, every team members should know basics about ○ What is being built ○ How the things are developed ○ How the things are being tested ● Absence of one person from a role can be filled by from another role ○ QA/SDET can be developer ○ Developer can be QA/SDET BUILD TEAM AROUND QUALITY
  • 36. Mesut Güneş www.testrisk.com How I am lucky to get those feedbacks from experienced mobile developers :) ● DEV provides testable features ● QA/SDET writes test ● When QA/SDET get familiarity with whole project, s/he can update/add missing parts for deterministic test ● Dev are ready for making test framework better :) BUILD TEAM AROUND QUALITY
  • 37. Mesut Güneş www.testrisk.com CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, and infographics & images by Freepik. Please keep this slide for attribution. Does anyone have any questions? THANKS References: ● https://developer.android.com/training/testing/espresso ● https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual /testing_with_xcode/chapters/09-ui_testing.html ● https://appium.io/docs/en/about-appium/intro/ ● https://www.browserstack.com/guide/getting-started-xcuitest-framework ● https://www.browserstack.com/guide/appium-vs-espresso ● https://blog.testproject.io/2020/04/08/fastest-mobile-automation-testing-tool-appium- vs-xcuitest-vs-testproject-vs-uiautomator-vs-espresso/ ● https://devexperts.com/blog/ios-ui-testing-frameworks-performance-comparison/

Notes de l'éditeur

  1. We mainly focus on doing the functional tests on system and acceptance level but we can also check that the performance of the apps during this test by keeping all dependent parts (such as network, backend services, devices, test data, test steps) stable so that we can catch the deviation in the performance of the app.
  2. A simple automation code creates a request with a json-wire protocol to the Appium server then Appium server gets the capabilities and creates a driver accordingly then starts to connect to devices/emulators/simulators to interact with the Bootstrap framework inside the target devices and finally the Bootstrap tries to complete the requests. Once the requests completed or failed for any reasons it sends back the log to the client so there is mutual communication during execution of the simple automation command. Appium created based on the Selenium Webdriver that was created for web automation so making this technology for mobile solution requires a lot of engineering. Appium includes lot of development to cover many edge cases and it will be also updated/refactored by upcoming updates in native automation frameworks, Espresso and XCUITest, that are updated every year by Google and Apple. As a result, Appium is an over-engineered tool.
  3. Reference: https://www.headspin.io/blog/understanding-appium-drivers-and-how-to-choose-which-one-to-use
  4. Same as in the Appium, a simple automation command that is initiated by step definition send requests to the server inside the devices so it can interact with the app UI objects. This interaction is provided by Robotium for android and by XCUITest for iOS. There is also a detail that the iOS server should be inside the build app which means that you need to rebuild iOS app for the Calabash target. The main differences between Appium and Calabash is that the server is inside the devices for the Calabash and you are sending query for the UI objects.
  5. Talk about followings: What native means Where app code, UI code, unit test code How to apply white-box testing How Espresso is initiated How Espresso can be architectured POM
  6. Talk about followings: What native means Where app code, UI code, unit test code How to apply white-box testing How Espresso is initiated How Espresso can be architectured POM