SlideShare uma empresa Scribd logo
1 de 9
1
Confidential
Android behind UI
Dmytro Tokarskyy
2021-12-21
2
Confidential
Agenda
1. Intro
2. Some technical information
3. Live code session
3
Confidential
Subaru Starlink on the 2020 Subaru Outback © Subaru Corporation
4
Confidential
Test Bed
5
Confidential
Remote procedure Call (RPC)
Client/Host
Client API
Client Stub
Server/Target
Server API
Server Stub
Marshaling
SOAP
gRPC
JSON-RPC
6
Confidential
Android Intent
System
CLI Util
CLI Util
Apps/Services
Receiver
Receiver
Receiver
Intents
An intent is an abstract description of an
operation to be performed. Intent contains an
action name and data
7
Confidential
ADB Architecture
Host Targe
t
CLI Util
adb binary
Service
ADB Daemon (adbd)
ADB Daemon (adbd)
tcp: 5037
8
Confidential
Links
# Existing Frameworks
## Mobly
* [Mobly](https://github.com/google/mobly) is a Python-based test framework that specializes in supporting
test
cases that require multiple devices, complex environments, or custom hardware
setups.
* [Mobly Snippet Lib](https://github.com/google/mobly-snippet-lib): used for
triggering custom device-side code from host-side Mobly tests. You could use existing
Android libraries like UI Automator and Espresso.
* [Mobly Bundled Snippets](https://github.com/google/mobly-bundled-snippets): a set
of Snippets to allow Mobly tests to control Android devices by exposing a simplified
version of the public Android API suitable for testing.
## AOSP ADB Wrapper
[device.py](https://android.googlesource.com/platform/development/+/master/python-packages/adb/device.py)
## ADB Protocol Implementation
[adb_shell](https://github.com/JeffLIrion/adb_shell)
[ppadb](https://github.com/Swind/pure-python-adb)
9
Confidential

Mais conteúdo relacionado

Semelhante a GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing Сhallenges”

Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій Галушка
HRdepartment
 

Semelhante a GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing Сhallenges” (20)

"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii Nasinnyk
 
Opc
OpcOpc
Opc
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
Изучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded SystemИзучение интерфейсов операционных систем с помощью Embedded System
Изучение интерфейсов операционных систем с помощью Embedded System
 
вашенюк
вашенюквашенюк
вашенюк
 
Cloud connected mobile apps
Cloud connected mobile apps Cloud connected mobile apps
Cloud connected mobile apps
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
 
"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy
"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy
"Request Lifecycle at Prom.ua", Vitaliy Kharytonskiy
 
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_net
 
6
66
6
 
Crawler.pptx
Crawler.pptxCrawler.pptx
Crawler.pptx
 
лр7 ethernet
лр7 ethernet лр7 ethernet
лр7 ethernet
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій Галушка
 
Android Programming Intro
Android Programming IntroAndroid Programming Intro
Android Programming Intro
 
Jenkins CI (ukr)
Jenkins CI (ukr)Jenkins CI (ukr)
Jenkins CI (ukr)
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
 
лр4 основи modbus
лр4 основи modbusлр4 основи modbus
лр4 основи modbus
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
UA.SC 2017: Безпека вашого публічного API
UA.SC 2017: Безпека вашого публічного APIUA.SC 2017: Безпека вашого публічного API
UA.SC 2017: Безпека вашого публічного API
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020
 

Mais de GlobalLogic Ukraine

GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Ukraine
 

Mais de GlobalLogic Ukraine (20)

GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
GlobalLogic Embedded Community x ROS Ukraine Webinar "Surgical Robots"
 
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
GlobalLogic Java Community Webinar #17 “SpringJDBC vs JDBC. Is Spring a Hero?”
 
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
GlobalLogic JavaScript Community Webinar #18 “Long Story Short: OSI Model”
 
Штучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptxШтучний інтелект як допомога в навчанні, а не замінник.pptx
Штучний інтелект як допомога в навчанні, а не замінник.pptx
 
Задачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptxЗадачі AI-розробника як застосовується штучний інтелект.pptx
Задачі AI-розробника як застосовується штучний інтелект.pptx
 
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptxЩо треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
Що треба вивчати, щоб стати розробником штучного інтелекту та нейромереж.pptx
 
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
GlobalLogic Java Community Webinar #16 “Zaloni’s Architecture for Data-Driven...
 
JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"JavaScript Community Webinar #14 "Why Is Git Rebase?"
JavaScript Community Webinar #14 "Why Is Git Rebase?"
 
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
GlobalLogic .NET Community Webinar #3 "Exploring Serverless with Azure Functi...
 
Страх і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic EducationСтрах і сила помилок - IT Inside від GlobalLogic Education
Страх і сила помилок - IT Inside від GlobalLogic Education
 
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
GlobalLogic .NET Webinar #2 “Azure RBAC and Managed Identity”
 
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”GlobalLogic QA Webinar “What does it take to become a Test Engineer”
GlobalLogic QA Webinar “What does it take to become a Test Engineer”
 
“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?“How to Secure Your Applications With a Keycloak?
“How to Secure Your Applications With a Keycloak?
 
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
GlobalLogic Machine Learning Webinar “Advanced Statistical Methods for Linear...
 
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
GlobalLogic Machine Learning Webinar “Statistical learning of linear regressi...
 
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
GlobalLogic C++ Webinar “The Minimum Knowledge to Become a C++ Developer”
 
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
Embedded Webinar #17 "Low-level Network Testing in Embedded Devices Development"
 
C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"C++ Webinar "Why Should You Learn C++ in 2021-22?"
C++ Webinar "Why Should You Learn C++ in 2021-22?"
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
 
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
GlobalLogic Azure TechTalk ONLINE “Marketing Data Lake in Azure”
 

GlobalLogic Test Automation Live Testing Session “Android Behind UI — Testing Сhallenges”

  • 2. 2 Confidential Agenda 1. Intro 2. Some technical information 3. Live code session
  • 3. 3 Confidential Subaru Starlink on the 2020 Subaru Outback © Subaru Corporation
  • 5. 5 Confidential Remote procedure Call (RPC) Client/Host Client API Client Stub Server/Target Server API Server Stub Marshaling SOAP gRPC JSON-RPC
  • 6. 6 Confidential Android Intent System CLI Util CLI Util Apps/Services Receiver Receiver Receiver Intents An intent is an abstract description of an operation to be performed. Intent contains an action name and data
  • 7. 7 Confidential ADB Architecture Host Targe t CLI Util adb binary Service ADB Daemon (adbd) ADB Daemon (adbd) tcp: 5037
  • 8. 8 Confidential Links # Existing Frameworks ## Mobly * [Mobly](https://github.com/google/mobly) is a Python-based test framework that specializes in supporting test cases that require multiple devices, complex environments, or custom hardware setups. * [Mobly Snippet Lib](https://github.com/google/mobly-snippet-lib): used for triggering custom device-side code from host-side Mobly tests. You could use existing Android libraries like UI Automator and Espresso. * [Mobly Bundled Snippets](https://github.com/google/mobly-bundled-snippets): a set of Snippets to allow Mobly tests to control Android devices by exposing a simplified version of the public Android API suitable for testing. ## AOSP ADB Wrapper [device.py](https://android.googlesource.com/platform/development/+/master/python-packages/adb/device.py) ## ADB Protocol Implementation [adb_shell](https://github.com/JeffLIrion/adb_shell) [ppadb](https://github.com/Swind/pure-python-adb)