SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Canberk Akduygu
Ex-Java Developer
Chief Test Architect @ Testinium
Product Owner @ Loadium
Blogger @ swtestacademy
Testinium
200+ REAL Mobile Device
1000+ OS - Browser
Automation
+90 Engineers
Consultants and
more…
+120 People
Istanbul
Turkey
Continuous
R&D
Table of Content
Application Under Test
Solution’s Code Base
Building Custom Grid & Appium Solution
Challenges & Solutions
QA Session
Sidekick Components
Application Under Test
9 Country Support +18M Downloads
Basic features
Text / Image / Voice Messaging
VoIP / Video Calls
Gaming Features
Mobile Payment
Social Platform
+ in app purchase
Dealing with Mobile
Test Environments
iOS 11
iOS 10iOS 9
Xcode 7
Xcode 8
Xcode 9
Android 5 Android 6 Android 7
Appium 1.5.3
Appium 1.6
Appium 1.6.3
Building
Extended Grid
Solution
Neat Environment
Basic Mobile Automation Implementation
Android
iOS
Android
GRID
Appium Nodes
CI Tool
- Capabilities managed on Source Code Level.
- Test Automation Frameworks choice defined
with If-Else Structure.
Extended Grid
Testinium Grid
XCUITest and Instrumentation for iOS
Uiautomator and Uiautomator2 for Android
Extended Grid choose the appropriate version
of Appium and set desired capability with
testing framework according to properties
stored in Json file.
Testinium Test Executor
Challenge 2
Distributing the Test in Different Device
Sender Device Receiver Device
S2: Receive Photo
S3: Download Photo
S4: Replies Back
S1: Send Photo
S5: Check the Reply
Send Picture Scenario
Test runs parallel but not the way
you think of it!
Parallelism as we know: Running
one test case in different device with
the same steps.
Parallelism here: Running one test
case in different device with
different steps.
WhiHow are you going to check whether a new message
Received and it’s your turn to respond?
- Pass message content as a parameter for
second user to wait?
- Implicit or Explicit Waits causing timeouts.
- Or some other solution?
Waiter Strategy
Synchronize Mobile
Device
Working in a
Harmony
Syncronization Module
Android
iOS
Android
One GRID to Rule Them All and in the Syncronization to Bind Them
SynchronizerExt. Grid
Become the
Sender
Become the
Receiver
I am the Receiver
I am the Sender
Restful
Synchroniser
Service
How much is
Bitcoin?
Don’t Ask!!
Bankrupt on the way!
SM
MS
AUM
MR
SM : Send Message
MS . Message Sent
AUM: Any Unread Message
MR: Message Replied
Syncronization Multiple Mobile Device
Our Sidekicks
- Take Screenshots
- Record Execution Video
- PhoneUtils
Capture Video & Screenshots in Extended Grid
Video Recording
Taking Screenshots
Has a Native Video Recorder
Limitation is 3 minutes so we add videos
after test finishes
Android Debug Bridge records video
Android Debug Bridge capture screenshots
No Native Video Recorder
Capture 6-8 Screenshots/sec
and Combine them with a Ruby script.
3rd Party
https://github.com/libimobiledevice
Selenium Grid Appium
Extended
Grid Agent
Extended Node
Agent
Standart
Grid
Testinium
Grid
Test Request
Appium Request
Device LabVideo Recording Req.
Screen Capture Req.
App Install / Uninstall / Upgrade Req.
Upload Videos
Upload ScreenShots
Override Selenium’s beforeSession and afterSession method
Override Selenium’s beforeCommand and afterCommand method
Architecture of the Project
Test steps are implemented according to device layout and flow.
Android and IOS Page Object Models
Test Code Structure
Devices are set before the test.
Roles of those device are defined.
Syncronization status among device
are initialized.
Test Code Structure
Role Based Test Case is
defined.
Synchronisation status are
reset after every step.
https://www.linkedin.com/in/
canberkakduygu/
Thank You for
Your Time
Q & A
Session!

Contenu connexe

Tendances

Kuberenetes Robotics Distributed System
Kuberenetes Robotics Distributed SystemKuberenetes Robotics Distributed System
Kuberenetes Robotics Distributed SystemTomoya Fujita
 
Barcode scanning on Android
Barcode scanning on AndroidBarcode scanning on Android
Barcode scanning on AndroidPietro F. Maggi
 
Presenting BuddyBuild
Presenting BuddyBuildPresenting BuddyBuild
Presenting BuddyBuildtiago32fcp
 
Introduction to Android programming
Introduction to Android programmingIntroduction to Android programming
Introduction to Android programmingSirwan Afifi
 
Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumPerfecto by Perforce
 
Kotlin Tutorial for Beginners | Kotlin Android Tutorial | Edureka
Kotlin Tutorial for Beginners | Kotlin Android Tutorial | EdurekaKotlin Tutorial for Beginners | Kotlin Android Tutorial | Edureka
Kotlin Tutorial for Beginners | Kotlin Android Tutorial | EdurekaEdureka!
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsShashikant Jagtap
 
Mobile OS Мобильный операционные системы вступление сравнение
Mobile OS Мобильный операционные системы вступление сравнение Mobile OS Мобильный операционные системы вступление сравнение
Mobile OS Мобильный операционные системы вступление сравнение Nikita Lozhnikov
 
1 common testing abbreviations
1   common testing abbreviations1   common testing abbreviations
1 common testing abbreviationsAndre Dada
 
Wearable Connectivity Architectures
Wearable Connectivity ArchitecturesWearable Connectivity Architectures
Wearable Connectivity ArchitecturesOstap Andrusiv
 
Android OpenGL ES remote rendering 蕭從恩
Android OpenGL ES remote rendering 蕭從恩Android OpenGL ES remote rendering 蕭從恩
Android OpenGL ES remote rendering 蕭從恩Tsung-en Hsiao
 
How to Build a Successful API Program: Best Practices For the Carrier
How to Build a Successful API Program: Best Practices For the CarrierHow to Build a Successful API Program: Best Practices For the Carrier
How to Build a Successful API Program: Best Practices For the CarrierCA API Management
 
Immersion on Azure - Data base and Cognitive Service at a glance
Immersion on Azure  - Data base and Cognitive Service at a glanceImmersion on Azure  - Data base and Cognitive Service at a glance
Immersion on Azure - Data base and Cognitive Service at a glanceKiki Noviandi
 
Introduction Of Android Scripting Environment
Introduction Of Android Scripting EnvironmentIntroduction Of Android Scripting Environment
Introduction Of Android Scripting EnvironmentFred Lin
 
Cara Terbaik Membangun Aplikasi Android TV dalam Menyongsong Era TV Digital -...
Cara Terbaik Membangun Aplikasi Android TV dalam Menyongsong Era TV Digital -...Cara Terbaik Membangun Aplikasi Android TV dalam Menyongsong Era TV Digital -...
Cara Terbaik Membangun Aplikasi Android TV dalam Menyongsong Era TV Digital -...DicodingEvent
 
Mobile application security tools
Mobile application security toolsMobile application security tools
Mobile application security toolsQTMContent
 

Tendances (20)

Kuberenetes Robotics Distributed System
Kuberenetes Robotics Distributed SystemKuberenetes Robotics Distributed System
Kuberenetes Robotics Distributed System
 
Barcode scanning on Android
Barcode scanning on AndroidBarcode scanning on Android
Barcode scanning on Android
 
Android 10
Android 10Android 10
Android 10
 
Presenting BuddyBuild
Presenting BuddyBuildPresenting BuddyBuild
Presenting BuddyBuild
 
Appcode
AppcodeAppcode
Appcode
 
Introduction to Android programming
Introduction to Android programmingIntroduction to Android programming
Introduction to Android programming
 
Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with Appium
 
Kotlin Tutorial for Beginners | Kotlin Android Tutorial | Edureka
Kotlin Tutorial for Beginners | Kotlin Android Tutorial | EdurekaKotlin Tutorial for Beginners | Kotlin Android Tutorial | Edureka
Kotlin Tutorial for Beginners | Kotlin Android Tutorial | Edureka
 
iOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS AppsiOSDevUK Conference- DevOps for iOS Apps
iOSDevUK Conference- DevOps for iOS Apps
 
Mobile OS Мобильный операционные системы вступление сравнение
Mobile OS Мобильный операционные системы вступление сравнение Mobile OS Мобильный операционные системы вступление сравнение
Mobile OS Мобильный операционные системы вступление сравнение
 
Android ppt
Android pptAndroid ppt
Android ppt
 
1 common testing abbreviations
1   common testing abbreviations1   common testing abbreviations
1 common testing abbreviations
 
Wearable Connectivity Architectures
Wearable Connectivity ArchitecturesWearable Connectivity Architectures
Wearable Connectivity Architectures
 
Android Porting for Embedded Platforms
Android Porting for Embedded PlatformsAndroid Porting for Embedded Platforms
Android Porting for Embedded Platforms
 
Android OpenGL ES remote rendering 蕭從恩
Android OpenGL ES remote rendering 蕭從恩Android OpenGL ES remote rendering 蕭從恩
Android OpenGL ES remote rendering 蕭從恩
 
How to Build a Successful API Program: Best Practices For the Carrier
How to Build a Successful API Program: Best Practices For the CarrierHow to Build a Successful API Program: Best Practices For the Carrier
How to Build a Successful API Program: Best Practices For the Carrier
 
Immersion on Azure - Data base and Cognitive Service at a glance
Immersion on Azure  - Data base and Cognitive Service at a glanceImmersion on Azure  - Data base and Cognitive Service at a glance
Immersion on Azure - Data base and Cognitive Service at a glance
 
Introduction Of Android Scripting Environment
Introduction Of Android Scripting EnvironmentIntroduction Of Android Scripting Environment
Introduction Of Android Scripting Environment
 
Cara Terbaik Membangun Aplikasi Android TV dalam Menyongsong Era TV Digital -...
Cara Terbaik Membangun Aplikasi Android TV dalam Menyongsong Era TV Digital -...Cara Terbaik Membangun Aplikasi Android TV dalam Menyongsong Era TV Digital -...
Cara Terbaik Membangun Aplikasi Android TV dalam Menyongsong Era TV Digital -...
 
Mobile application security tools
Mobile application security toolsMobile application security tools
Mobile application security tools
 

Similaire à Mobile Automation Solution for Messaging App Tests Across Devices

Rhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesRhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesKonstantin Rybas
 
Multi channel advantage
Multi channel advantageMulti channel advantage
Multi channel advantageDipesh Mukerji
 
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_ResumeRanjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resumeranjith nagisetty
 
Slides bootcamp21
Slides bootcamp21Slides bootcamp21
Slides bootcamp21dxsaki
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-AutomationMindfire Solutions
 
Android Development Overview
Android Development OverviewAndroid Development Overview
Android Development OverviewIgor Birman
 
Portfolio Sungho Yoo
Portfolio Sungho YooPortfolio Sungho Yoo
Portfolio Sungho Yooyjung93
 
Fight back android fragmentation
Fight back android fragmentationFight back android fragmentation
Fight back android fragmentationBitbar
 
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger,  GreenrobotDroidcon 2011: Gingerbread and honeycomb, Markus Junginger,  Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, GreenrobotDroidcon Berlin
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile DevelopmentPragnesh Vaghela
 
Azure for cs50x Miami
Azure for cs50x MiamiAzure for cs50x Miami
Azure for cs50x MiamiJoe Raio
 
Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsPositive Hack Days
 
600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security ModelMichael Rushanan
 
Road Ahead For Mobile Game Development
Road Ahead For Mobile Game DevelopmentRoad Ahead For Mobile Game Development
Road Ahead For Mobile Game DevelopmentImran K
 
GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NImam Raza
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfAbdullahMunir32
 

Similaire à Mobile Automation Solution for Messaging App Tests Across Devices (20)

Rhomobile 5.5 Release Notes
Rhomobile 5.5 Release NotesRhomobile 5.5 Release Notes
Rhomobile 5.5 Release Notes
 
Multi channel advantage
Multi channel advantageMulti channel advantage
Multi channel advantage
 
Amaresh_Ku_Mishra_Resume
Amaresh_Ku_Mishra_ResumeAmaresh_Ku_Mishra_Resume
Amaresh_Ku_Mishra_Resume
 
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_ResumeRanjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
Ranjith kumar Nagisetty(AndiordApp and PostSiliconTest Engineer)_Resume
 
Slides bootcamp21
Slides bootcamp21Slides bootcamp21
Slides bootcamp21
 
Sandeep_Resume
Sandeep_ResumeSandeep_Resume
Sandeep_Resume
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
 
Android Development Overview
Android Development OverviewAndroid Development Overview
Android Development Overview
 
Portfolio Sungho Yoo
Portfolio Sungho YooPortfolio Sungho Yoo
Portfolio Sungho Yoo
 
Fight back android fragmentation
Fight back android fragmentationFight back android fragmentation
Fight back android fragmentation
 
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger,  GreenrobotDroidcon 2011: Gingerbread and honeycomb, Markus Junginger,  Greenrobot
Droidcon 2011: Gingerbread and honeycomb, Markus Junginger, Greenrobot
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile Development
 
Portfolio
PortfolioPortfolio
Portfolio
 
Azure for cs50x Miami
Azure for cs50x MiamiAzure for cs50x Miami
Azure for cs50x Miami
 
Manish Chasta - Securing Android Applications
Manish Chasta - Securing Android ApplicationsManish Chasta - Securing Android Applications
Manish Chasta - Securing Android Applications
 
600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model600.250 UI Cross Platform Development and the Android Security Model
600.250 UI Cross Platform Development and the Android Security Model
 
Road Ahead For Mobile Game Development
Road Ahead For Mobile Game DevelopmentRoad Ahead For Mobile Game Development
Road Ahead For Mobile Game Development
 
GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android N
 
Mobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdfMobile Application Development-Lecture 03 & 04.pdf
Mobile Application Development-Lecture 03 & 04.pdf
 

Dernier

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 

Dernier (20)

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 

Mobile Automation Solution for Messaging App Tests Across Devices

  • 1.
  • 2. Canberk Akduygu Ex-Java Developer Chief Test Architect @ Testinium Product Owner @ Loadium Blogger @ swtestacademy
  • 3. Testinium 200+ REAL Mobile Device 1000+ OS - Browser Automation +90 Engineers Consultants and more… +120 People Istanbul Turkey Continuous R&D
  • 4. Table of Content Application Under Test Solution’s Code Base Building Custom Grid & Appium Solution Challenges & Solutions QA Session Sidekick Components
  • 5. Application Under Test 9 Country Support +18M Downloads Basic features Text / Image / Voice Messaging VoIP / Video Calls Gaming Features Mobile Payment Social Platform + in app purchase
  • 7. iOS 11 iOS 10iOS 9 Xcode 7 Xcode 8 Xcode 9 Android 5 Android 6 Android 7 Appium 1.5.3 Appium 1.6 Appium 1.6.3
  • 9. Basic Mobile Automation Implementation Android iOS Android GRID Appium Nodes CI Tool - Capabilities managed on Source Code Level. - Test Automation Frameworks choice defined with If-Else Structure.
  • 10. Extended Grid Testinium Grid XCUITest and Instrumentation for iOS Uiautomator and Uiautomator2 for Android Extended Grid choose the appropriate version of Appium and set desired capability with testing framework according to properties stored in Json file. Testinium Test Executor
  • 11. Challenge 2 Distributing the Test in Different Device
  • 12. Sender Device Receiver Device S2: Receive Photo S3: Download Photo S4: Replies Back S1: Send Photo S5: Check the Reply Send Picture Scenario Test runs parallel but not the way you think of it! Parallelism as we know: Running one test case in different device with the same steps. Parallelism here: Running one test case in different device with different steps.
  • 13. WhiHow are you going to check whether a new message Received and it’s your turn to respond? - Pass message content as a parameter for second user to wait? - Implicit or Explicit Waits causing timeouts. - Or some other solution? Waiter Strategy
  • 15. Syncronization Module Android iOS Android One GRID to Rule Them All and in the Syncronization to Bind Them SynchronizerExt. Grid
  • 16. Become the Sender Become the Receiver I am the Receiver I am the Sender Restful Synchroniser Service How much is Bitcoin? Don’t Ask!! Bankrupt on the way! SM MS AUM MR SM : Send Message MS . Message Sent AUM: Any Unread Message MR: Message Replied Syncronization Multiple Mobile Device
  • 17. Our Sidekicks - Take Screenshots - Record Execution Video - PhoneUtils
  • 18. Capture Video & Screenshots in Extended Grid Video Recording Taking Screenshots Has a Native Video Recorder Limitation is 3 minutes so we add videos after test finishes Android Debug Bridge records video Android Debug Bridge capture screenshots No Native Video Recorder Capture 6-8 Screenshots/sec and Combine them with a Ruby script. 3rd Party https://github.com/libimobiledevice
  • 19. Selenium Grid Appium Extended Grid Agent Extended Node Agent Standart Grid Testinium Grid Test Request Appium Request Device LabVideo Recording Req. Screen Capture Req. App Install / Uninstall / Upgrade Req. Upload Videos Upload ScreenShots Override Selenium’s beforeSession and afterSession method Override Selenium’s beforeCommand and afterCommand method
  • 21. Test steps are implemented according to device layout and flow. Android and IOS Page Object Models
  • 22. Test Code Structure Devices are set before the test. Roles of those device are defined. Syncronization status among device are initialized.
  • 23. Test Code Structure Role Based Test Case is defined. Synchronisation status are reset after every step.