SlideShare une entreprise Scribd logo
1  sur  34
Mesut Güneş
www.testrisk.com
November 19, 2021
HUSTEF 2021
#hustef21
Mesut Güneş
www.testrisk.com
Motto: Be part of the development team by native way!
BENEFITS OF USING 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
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
load, stress, security, contract
test
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
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
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

Similaire à Benefits of using native automation tooling for mobile application testing.pptx

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
 
5 Popular Test Automation Tools For React Native Apps.pdf
5 Popular Test Automation Tools For React Native Apps.pdf5 Popular Test Automation Tools For React Native Apps.pdf
5 Popular Test Automation Tools For React Native Apps.pdfflufftailshop
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Perfecto Mobile
 
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
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android ApplicationsLeif Janzik
 
Android testing
Android testingAndroid testing
Android testingBitbar
 
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
 
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
 
Is Codeless Automation Testing Revolutionizing the Testing Industry.pdf
Is Codeless Automation Testing Revolutionizing the Testing Industry.pdfIs Codeless Automation Testing Revolutionizing the Testing Industry.pdf
Is Codeless Automation Testing Revolutionizing the Testing Industry.pdfMindfire LLC
 
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
 
Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Maria Carcar
 
The Best Automation Testing Tools To Use In 2022 | BMN Infotech
The Best Automation Testing Tools To Use In 2022 | BMN InfotechThe Best Automation Testing Tools To Use In 2022 | BMN Infotech
The Best Automation Testing Tools To Use In 2022 | BMN InfotechBMN Infotech
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Sauce Labs
 
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Intuit Inc.
 
Automated Application Testing
Automated Application TestingAutomated Application Testing
Automated Application TestingCodal
 
What is the importance of tools in automated ui testing
What is the importance of tools in automated ui testingWhat is the importance of tools in automated ui testing
What is the importance of tools in automated ui testingTestingXperts
 
Top 10 Mobile Application Testing Tools | Edureka
Top 10 Mobile Application Testing Tools | EdurekaTop 10 Mobile Application Testing Tools | Edureka
Top 10 Mobile Application Testing Tools | EdurekaEdureka!
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introductionVivek Shringi
 

Similaire à Benefits of using native automation tooling for mobile application testing.pptx (20)

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
 
5 Popular Test Automation Tools For React Native Apps.pdf
5 Popular Test Automation Tools For React Native Apps.pdf5 Popular Test Automation Tools For React Native Apps.pdf
5 Popular Test Automation Tools For React Native Apps.pdf
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017
 
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
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
 
Android testing
Android testingAndroid testing
Android testing
 
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
 
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
 
Is Codeless Automation Testing Revolutionizing the Testing Industry.pdf
Is Codeless Automation Testing Revolutionizing the Testing Industry.pdfIs Codeless Automation Testing Revolutionizing the Testing Industry.pdf
Is Codeless Automation Testing Revolutionizing the Testing Industry.pdf
 
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
 
Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]Mobile Automation Meetup Presentation [English]
Mobile Automation Meetup Presentation [English]
 
The Best Automation Testing Tools To Use In 2022 | BMN Infotech
The Best Automation Testing Tools To Use In 2022 | BMN InfotechThe Best Automation Testing Tools To Use In 2022 | BMN Infotech
The Best Automation Testing Tools To Use In 2022 | BMN Infotech
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)
 
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
 
Automated Application Testing
Automated Application TestingAutomated Application Testing
Automated Application Testing
 
What is the importance of tools in automated ui testing
What is the importance of tools in automated ui testingWhat is the importance of tools in automated ui testing
What is the importance of tools in automated ui testing
 
Top 10 Mobile Application Testing Tools | Edureka
Top 10 Mobile Application Testing Tools | EdurekaTop 10 Mobile Application Testing Tools | Edureka
Top 10 Mobile Application Testing Tools | Edureka
 
Appium an introduction
Appium   an introductionAppium   an introduction
Appium an introduction
 

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

Interfacing Analog to Digital Data Converters ee3404.pdf
Interfacing Analog to Digital Data Converters ee3404.pdfInterfacing Analog to Digital Data Converters ee3404.pdf
Interfacing Analog to Digital Data Converters ee3404.pdfragupathi90
 
Diploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdfDiploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdfJNTUA
 
Linux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message QueuesLinux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message QueuesRashidFaridChishti
 
AI in Healthcare Innovative use cases and applications.pdf
AI in Healthcare Innovative use cases and applications.pdfAI in Healthcare Innovative use cases and applications.pdf
AI in Healthcare Innovative use cases and applications.pdfmahaffeycheryld
 
Raashid final report on Embedded Systems
Raashid final report on Embedded SystemsRaashid final report on Embedded Systems
Raashid final report on Embedded SystemsRaashidFaiyazSheikh
 
Online crime reporting system project.pdf
Online crime reporting system project.pdfOnline crime reporting system project.pdf
Online crime reporting system project.pdfKamal Acharya
 
analog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptxanalog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptxKarpagam Institute of Teechnology
 
Artificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian ReasoningArtificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian Reasoninghotman30312
 
Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2T.D. Shashikala
 
Electrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineElectrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineJulioCesarSalazarHer1
 
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdflitvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdfAlexander Litvinenko
 
How to Design and spec harmonic filter.pdf
How to Design and spec harmonic filter.pdfHow to Design and spec harmonic filter.pdf
How to Design and spec harmonic filter.pdftawat puangthong
 
Introduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AIIntroduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AISheetal Jain
 
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineLow rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineAftabkhan575376
 
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024EMMANUELLEFRANCEHELI
 
Lesson no16 application of Induction Generator in Wind.ppsx
Lesson no16 application of Induction Generator in Wind.ppsxLesson no16 application of Induction Generator in Wind.ppsx
Lesson no16 application of Induction Generator in Wind.ppsxmichaelprrior
 
BORESCOPE INSPECTION for engins CFM56.pdf
BORESCOPE INSPECTION for engins CFM56.pdfBORESCOPE INSPECTION for engins CFM56.pdf
BORESCOPE INSPECTION for engins CFM56.pdfomarzaboub1997
 
5G and 6G refer to generations of mobile network technology, each representin...
5G and 6G refer to generations of mobile network technology, each representin...5G and 6G refer to generations of mobile network technology, each representin...
5G and 6G refer to generations of mobile network technology, each representin...archanaece3
 
Microkernel in Operating System | Operating System
Microkernel in Operating System | Operating SystemMicrokernel in Operating System | Operating System
Microkernel in Operating System | Operating SystemSampad Kar
 
Final DBMS Manual (2).pdf final lab manual
Final DBMS Manual (2).pdf final lab manualFinal DBMS Manual (2).pdf final lab manual
Final DBMS Manual (2).pdf final lab manualBalamuruganV28
 

Dernier (20)

Interfacing Analog to Digital Data Converters ee3404.pdf
Interfacing Analog to Digital Data Converters ee3404.pdfInterfacing Analog to Digital Data Converters ee3404.pdf
Interfacing Analog to Digital Data Converters ee3404.pdf
 
Diploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdfDiploma Engineering Drawing Qp-2024 Ece .pdf
Diploma Engineering Drawing Qp-2024 Ece .pdf
 
Linux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message QueuesLinux Systems Programming: Semaphores, Shared Memory, and Message Queues
Linux Systems Programming: Semaphores, Shared Memory, and Message Queues
 
AI in Healthcare Innovative use cases and applications.pdf
AI in Healthcare Innovative use cases and applications.pdfAI in Healthcare Innovative use cases and applications.pdf
AI in Healthcare Innovative use cases and applications.pdf
 
Raashid final report on Embedded Systems
Raashid final report on Embedded SystemsRaashid final report on Embedded Systems
Raashid final report on Embedded Systems
 
Online crime reporting system project.pdf
Online crime reporting system project.pdfOnline crime reporting system project.pdf
Online crime reporting system project.pdf
 
analog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptxanalog-vs-digital-communication (concept of analog and digital).pptx
analog-vs-digital-communication (concept of analog and digital).pptx
 
Artificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian ReasoningArtificial Intelligence Bayesian Reasoning
Artificial Intelligence Bayesian Reasoning
 
Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2Research Methodolgy & Intellectual Property Rights Series 2
Research Methodolgy & Intellectual Property Rights Series 2
 
Electrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission lineElectrostatic field in a coaxial transmission line
Electrostatic field in a coaxial transmission line
 
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdflitvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
litvinenko_Henry_Intrusion_Hong-Kong_2024.pdf
 
How to Design and spec harmonic filter.pdf
How to Design and spec harmonic filter.pdfHow to Design and spec harmonic filter.pdf
How to Design and spec harmonic filter.pdf
 
Introduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AIIntroduction to Artificial Intelligence and History of AI
Introduction to Artificial Intelligence and History of AI
 
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbineLow rpm Generator for efficient energy harnessing from a two stage wind turbine
Low rpm Generator for efficient energy harnessing from a two stage wind turbine
 
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
NEWLETTER FRANCE HELICES/ SDS SURFACE DRIVES - MAY 2024
 
Lesson no16 application of Induction Generator in Wind.ppsx
Lesson no16 application of Induction Generator in Wind.ppsxLesson no16 application of Induction Generator in Wind.ppsx
Lesson no16 application of Induction Generator in Wind.ppsx
 
BORESCOPE INSPECTION for engins CFM56.pdf
BORESCOPE INSPECTION for engins CFM56.pdfBORESCOPE INSPECTION for engins CFM56.pdf
BORESCOPE INSPECTION for engins CFM56.pdf
 
5G and 6G refer to generations of mobile network technology, each representin...
5G and 6G refer to generations of mobile network technology, each representin...5G and 6G refer to generations of mobile network technology, each representin...
5G and 6G refer to generations of mobile network technology, each representin...
 
Microkernel in Operating System | Operating System
Microkernel in Operating System | Operating SystemMicrokernel in Operating System | Operating System
Microkernel in Operating System | Operating System
 
Final DBMS Manual (2).pdf final lab manual
Final DBMS Manual (2).pdf final lab manualFinal DBMS Manual (2).pdf final lab manual
Final DBMS Manual (2).pdf final lab manual
 

Benefits of using native automation tooling for mobile application testing.pptx

  • 1. Mesut Güneş www.testrisk.com November 19, 2021 HUSTEF 2021 #hustef21
  • 2. Mesut Güneş www.testrisk.com Motto: Be part of the development team by native way! BENEFITS OF USING 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 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 load, stress, security, contract test 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 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
  • 17. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 23. 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
  • 26. 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
  • 29. 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
  • 30. 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
  • 32. 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
  • 33. 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
  • 34. 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. 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.
  4. 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
  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