SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
The Mobile DevOps Company
Ville-Veikko Helppi
Head of Demand Generation
ville-veikko.helppi@bitbar.com
Exercising and Scaling Up
Mobile DevOps in the Enterprise
WEBINAR
Mobile DevOps
•  The ‘Mobile DevOps’,
Process and Tools
•  Infrastructure & Architecture
•  Tips & Tricks for Scaling Up
•  Troubleshooting Device Lab
•  Demo
•  Summary – Q&A
Agenda
More information
about Mobile DevOps
can be found at
bitbar.com
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
The Mobile DevOps
•  On-Demand Mobile Device Infrastructure
•  Support Any Development & Testing Framework
•  Automate, Automate, Automate – To Save Time, Money and Hassle
•  Provide Unprecedented Scale and Throughput
•  Allow For Creative Use (Open API, Customizable Integrations)
•  Adopt Mobile Development Thought Leadership and Expertise
Support all development stages:
Prototyping Development Testing Production Monitoring
Successful Adoption of Mobile DevOps
•  Modern mobile app development is Agile, but
infrastructure does not support Agility well
•  DevOps practices are emerging in to the
intersection of Development, QA and Operations
•  DevOps practice emphasizes the collaboration
and communication of both software developers
and operations while automating the process of
software delivery and infrastructure changes
•  DevOps practice establishes a culture and
environment where building, testing, and
releasing software, can happen rapidly,
frequently, and more reliably.
Mobile DevOps and Agile
Development QA
Operations
Dev
Ops
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
SPEED WINS
It’s a simple fact. The faster you can deliver new applications, features and
upgrades to market, and collect feedback, the better your business
performs. For that you need higher development pace. And a lot of
automation.
THERE IS A DEMAND FOR MOBILE DEVOPS
DevOps practices and tools have revolutionized the pace and quality of
service delivery – but only for traditional server-based apps.
FRAGMENTATION WITH TOOLS
In mobile the delivery pipelines are more complex – in terms of tools and
used methods. Cohesive and well-integrated development tool flow
derives from Mobile DevOps practices.
MANUAL DOING IS NOT EFFECTIVE
Every stage requires a lot of manual work and silo’ed solutions from
various vendors and/or open source tools.
Why Mobile DevOps
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Delivery Pipeline for Mobile Apps
Development
Source Code
Management
SCM
Build Test Deploy Production
Dev Tools:
•  IDEs
•  JIRA
•  Slack
•  etc.
SCM:
•  Git/GitHub/
GitLab
•  Bitbucket
•  MSFT
•  etc.
Continuous
Integration
and Build
Automated
Testing
Automation
for app store
deployment,
beta testers
& enterprise
app stores
Production
Monitoring
and feedback
to Dev
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Delivery Pipeline with Mobile DevOps
Development
Source Code
Management
SCM
Build Test Deploy Production
Dev Tools:
•  IDEs
•  JIRA
•  Slack
•  etc.
SCM:
•  Git/GitHub/
GitLab
•  Bitbucket
•  MSFT
•  etc.
Continuous
Integration and
Build
Automated Testing Automation for app
store deployment,
beta testers
& enterprise app
stores
Production
Monitoring and
feedback to Dev
The	Scope	of	Mobile	DevOps	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Mobile DevOps - User Experience
Development
/IDE SCM
Build
Automated
Testing
Deploy
/ Release
“Production”
Automated builds
for every code
change
Built binaries
automatically tested
Tested applications,
Screenshots for various devices
and languages, certificates,
metadata ready to push to App stores
Deploy
To Devices
Test apps in
real world
(Synthetic)
Apps Used by Users
•  Synthetic Monitoring
•  Real User Monitoring
Beta Testing
(Humans)
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Exercising Mobile DevOps
Test
Deploy
Monitoring
SCM
Development
Build
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Continuous Integration
CONTINUOUS
INTEGRATION
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
The ‘Shift-Left’ – What People Think It Is
Shi>-Le>	TesAng	
(happens	earlier)	
TradiAonal	TesAng	
(happens	before	release)	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
The ‘Shift-Horizontal’ Is The Way Forward
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Hardware & Software for
Efficient and Scalable
Mobile DevOps
•  Parallelism, and Lots of Real Mobile Devices (Plug-and-Play)
•  Mobile Test Automation Frameworks and Appropriate Use of Those
•  Easy to Adopt, Deploy and Use Admin Configurability
•  Use of Virtual Machines & Containers (Cloud, On-Premise)
•  Open API and Ability to Integrate with Any Tools
•  Efficient Use of Resources
Support all development stages:
Prototyping Development Testing Production Monitoring
What Enables Scalability?
Three Deployment Options for
Test Automation with Devices
Public	Cloud	 Private	Cloud	
On-Premise	
Reserved	&	
User-Specific	
Devices	
Shared	&	Publicly	
Available	Devices	
Hosted	by	Vendor	
Hosted	Locally	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
UNPRECEDENTED SCALE
By automating the creation, validation and deployment of the containers we
are able to deploy large number of identical device servers in matter of
minutes.
ALWAYS CLEAN EXECUTION ENVIRONMENT
New pristine container is started for each test session so that the environment
is always identical from one session to another.
FAST AND EASY TO UPDATE AND MAINTAIN
Any updates need to be made only to the scripts that create the container
images and the changes are orchestrated to all device servers
ALLOWS RUN TIME CUSTOMIZATION OF THE ENVIRONMENT
Because the tests are executed inside the container we can allow users to
customize the environment any way they like during the test session.
Why Containers
Host	
Container	1	
Container	2	
Container	3	
Container	n	
…	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Because the tests are executed inside the container we can allow
users to customize the environment any way they like during the
test session.
This is done by using the run.sh script that is used to launch the
the container session.
Any shell command or tool that is installed on the container can be
called from run.sh script. For instance you can build anything with
Maven:
mvn clean test –DexecutionType=serverside
or install some library or tool with Brew
brew install python
Customizing The Environment
Host	
Container	1	
Container	2	
Container	3	
Container	n	
…	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
#!/bin/bash
startAppium(){
if [ "$(uname)" == "Darwin" ]; then
startAppiumOSX
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
startAppiumLinux
else
echo "Unknown OS system, exiting..."
exit 1
fi
}
executeTests(){
echo "Extracting tests.zip..."
unzip tests.zip
if [ "$(uname)" == "Darwin" ]; then
echo "Running iOS Tests..."
mvn clean test -Dtest=IosAppiumExampleTest -DexecutionType=serverside
elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
echo "Running Android Tests..."
mvn clean test -Dtest=AndroidAppiumExampleTest -DexecutionType=serverside
fi
echo "Finished Running Tests!"
cp target/surefire-reports/junitreports/TEST-*.xml TEST-all.xml
}
startAppium
executeTests
Example of run.sh Script
Host	
Container	1	
Container	2	
Container	3	
Container	n	
…	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Example: iOS Virtual Machine Components
1.3.6,	1.4.3,	1.4.13,	
1.4.16,	1.6.0,	1.6.3	
+	Appium_Helper:	
1.3.6,	1.4.3,	1.4.13	
	 0.20.4	
	
	
Test	AutomaAon	Frameworks	
Dependencies	and	‘Middleware’	
iTunes	
Programming	Languages	Core	Tools	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Example: iOS Virtual Machine Components
1.3.6,	1.4.3,	1.4.13,	
1.4.16,	1.6.0,	1.6.3	
+	Appium_Helper:	
1.3.6,	1.4.3,	1.4.13	
	
WGET	
ideviceinstaller	
Ios-webkit-debug-proxy	
usbmuxd/iproxy	
0.20.4	
AddiAonal	
frameworks	
2.4.9	
8.x	/	7.x	
Settings & Config to VM
•  Disable software updates,
Disable screensaver, Disable
sleeping, Disable Spotlight
mds agent, Remove dock
items, Disable hibernation,
Remove sleepimage
•  Remove swap files, Zero out
free space, Shrink disk
•  Set up /etc/hosts, Remove old
Keychains, Import keychain
•  Create ~/Library/MobileDevice
directory, Create ~/Library/
MobileDevice/Provisioning
Profiles directory
•  Import mobileprovision
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Mobile Test Automation Frameworks
XCTEST/
XCUITEST
UIAUTOMATOR ESPRESSO APPIUM CALABASH
ANDROID No Yes Yes Yes Yes
IOS Yes No No Yes Yes
MOBILE WEB Yes Limited to x.y clicks No Yes No
LANGUAGE Obj-C/Swift Java Java Almost any Ruby
TOOL FOR TEST
CREATION
Xcode UIAutomator
viewer
Hierarchy
viewer
Appium.app CLI
(Human-Readable syntax)
COMMUNITY Apple Google Google Community Community
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
•  Easy to setup & easily extendable
•  Time-independent
•  Backward compatibility (supporting
various API levels)
•  A custom Instrumentation TestRunner
with special privileges
•  Works on any API levels
•  Thin layer on top of Android
Instrumentation Framework
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
•  Integral part of Xcode, works with both
real devices and simulator
•  XCTest allows developers to write tests
for components at any level
•  XCUITest provides rich UI testing
capabilities for apps
•  Objective-C / Swift
•  Nearly all frameworks (Appium, EarlGrey)
are working in conjuction with XCTest
•  Bitbar Testing products support XCTest +
XCUITest with all deployment options
XCTest /
XCUITest
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
•  Different Deployment Options
o  Hosted in various locations (data centers)
o  Co-location
o  On-premise
•  Infrastructure Support
o  Wireless carrier support
o  Rooted devices (optional)
o  Support for hardware add-ons (i.e. Bluetooth,
Wearables, etc)
•  Security (seriously!)
o  Isolated network
o  Dedicated hardware resources
o  VPN Support
o  OAuth/SSO
What Also Helps
Scaling Up?
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Private
Cloud /
Enterprise
Support
•  Network Test Support
o  Network Performance Optimization
o  Charles Proxy
o  Fiddler
•  Performance
o  Built-in CPU / Memory tracking
•  Graphics Benchmarking Integration
o  FPS, GPU utilization, battery usage, etc
•  Value-Added Services
o  API Implementations
o  On-demand scripting
o  Video recording
o  Custom reporting / formatting
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
iOS Device Cluster Server
Mac OS 1.9 or later, i5 or greater CPU, 4GB RAM
or 16GM Minimum for Parallel Device Runs,
256GB Hard Disk Minimum
Android Device Cluster Server
Ubuntu Linux 12.04, i5 or Greater CPU, 4GB RAM
Minimum, 500MB Hard Disk, 10 Port USB 3.0 Hub
or 1USB 3.0 Port per Device, Motherboard with
BIOS that supports turning off USB Power Saving.
Up to 10 Android devices per Machine.
Web Front End Server
Ubuntu Server 12.04 LTS 64-Bit (Virtual or
Physical), 4-Core CPU Minimum, 16GB of RAM
Minimum, 500GB Hard Disk Space, 1GBit
Ethernet Connectivity
Database Server
Ubuntu Server 12.04 LTS 64-Bit (Virtual or
Physical), 4-Core CPU Minimum, 8GB of RAM
Minimum, 2TB Minimum of Hard Disk, Storage in
RAID Array, 1GBit Ethernet Connectivity
Other Equipment To Consider
Server Racks, USB Cables, PDUs, WiFi Routers,
UPS
Hardware Infrastructure
n	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Troubleshooting A Device Lab
•  Devices
o  So many things can go wrong …
•  Infrastructural Hardware
o  Device Control Hardware
•  ADB and Instruments/Tools
•  Hard Disks/Storage
•  RAM
o  USB
•  Hubs
•  Cables
•  Network
o  WiFi
o  Cellular
•  Software
o  Jenkins/CI
o  SCM
o  Test Automation Frameworks
80%	
The Most Typical Problems
10%	
5%	
5%	
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
The most typical problems
•  Device doesn’t show up
o  CI/On-Premise Solution/etc
•  Device doesn’t react
•  Device doesn’t start tests/run
•  Device is out of battery/battery level low
•  Device shows notifications
Troubleshooting Mobile Devices
Daily Check-Ups for Mobile Devices
In order to maintain device farm, environment and all
aspects of SW & HW, the following daily checks are
recommended:
•  Are devices powered up?
•  Are all devices WiFi connected?
•  Do all devices have an active USB connection?
•  Are battery levels at least 50% (for every
device)?
•  Are there any pop-ups, system notifications, or
other system dialogs open on device screen?
•  Are screens unlocked?
We recommend checking every device 3 times/day.
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Too Many Devices Connected /
Device Server
•  Too large device cluster
•  Maximum of ...
o  3 iOS devices per Mac Mini
o  10 Android devices per Linux server
•  Enough harddisk/storage for all servers
We recommend checking & cleaning
harddisks (with a shell script) every day.
Typical Mistakes (and How To Tackle)
Device Server Check-Ups
In addition to checking logs on server machines, it’s
highly recommended to check following things:
•  Diskspace on all machines (script)
•  Available RAM (script)
•  Do all devices have an active USB connection?
•  Available and consumption of CPU for peaks
•  Network conditions
We recommend automated scripts for checking
above-listed items every day.
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Network Not Working Properly
•  Need to check if network is working
•  Network for ALL connected devices
•  Take WiFi down and up – try connection
with your browser
We recommend checking network connection
6-9 times every day.
Typical Mistakes (and How To Tackle)
Other Software Not Working Properly
Again, check all logs, that contain important
information about the system and health of the
environment:
•  Syslog (on all server machines)
•  Catalina out (on application server)
•  Jenkins logs (on device servers)
•  MySQL errors (and their logs)
We recommend checking these items every day.
In addition, it’s recommended to implement alarm
script to notify about any occurring problems.
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
PROBLEM: If none of the devices connected to one device server are running
tests (and you can’t initiate any manual session)
SOLUTION: Majority of issues seen with non-running tests are related to Jenkins
•  Check Jenkins log (https://hostname:8080/log/all)
•  Restart Jenkins – https://hostname:8080/safeRestart
•  Restart the device server
Troubleshooting - Mobile Devices
PROBLEM: Device is not running any tests.
SOLUTION: First, try if you can establish a manual test session with any of your
devices. If not, follow these steps:
•  Check that device is powered and visible on Jenkins
o  https://hostname:8080/android-devices or http://hostname:8080/ios-devices
•  Check that device is available in Bitbar On-Premise
o  https://cloudservername:9080/#service/admin/configuration
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
PROBLEM: Tests fail without running the test script successfully. Fail can happen
at init or any phase of the script execution.
SOLUTION: Find the exact error and follow these steps:
•  Retrying test run is a good idea to see if the error is random or reproducable
•  Check test run and device run views for logs and errors
•  Check console.log for the test run
•  Common failures: 1) app installation failed, 2) test zip structure is invalid, 3) Xcode didn’t start (iOS)
Troubleshooting - Mobile Devices
PROBLEM: None of devices are running any tests.
SOLUTION: Start with logs. In all cases, the logs contain information about errors,
wrong behavior and root cause of issues can be found in those. Start with these:
•  First check application server log (catalina.out)
•  Check available diskspace
•  Then restart Application server (sudo reboot now)
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Troubleshooting – Mobile Devices
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Test On Real Devices Automation -
Quickly and Efficiently
Use Existing Assets Now
and Future Tools
Platform Designed For
Agile Development
•  Test real world scenarios
on real, non-emulated
devices with 100%
certainty
•  See exactly what the user
experiences
•  Reduce time and
headache of device
acquisition and
management
The Key Things to Boost Mobile DevOps
•  Use any automation
framework or test
exercisers (e.g. Testdroid
App Crawler) to get instant
reports and results
•  Hit the ground running and
get actionable results on a
wide range of devices
•  Run more tests across
more devices in less time,
with fewer resources
•  Bring your own hardware,
tools and frameworks and
the Bitbar team will
integrate them into the
cloud
•  Bitbar solutions will not
lock you in to any tool or
automation framework
•  No vendor lock-in means
that you have a long term
and future proof platform
for all of your mobile
development and testing
needs
•  Bitbar integrates
seamlessly to your
development tools and CI
process
•  Instant results give
immediate feedback to the
development team
•  Faster iterations mean
more efficient
development, faster time
to market and more
satisfied users
©	Bitbar	Technologies	2017	–	h7p://bitbar.com
Demonstration
Summary – Q&A
More information about mobile app testing,
mobile monitoring and mobile devops at
bitbar.com

Weitere ähnliche Inhalte

Was ist angesagt?

Continuous delivery mobile application development
Continuous delivery mobile application developmentContinuous delivery mobile application development
Continuous delivery mobile application development
Thoughtworks
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
Dominik Dary
 

Was ist angesagt? (20)

Build a Large Scale In-House Test Lab for Mobile Apps
Build a Large Scale In-House Test Lab for Mobile AppsBuild a Large Scale In-House Test Lab for Mobile Apps
Build a Large Scale In-House Test Lab for Mobile Apps
 
Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020Top 10 Automation Testing Tools in 2020
Top 10 Automation Testing Tools in 2020
 
Appium vs Espresso and XCUI Test
Appium vs Espresso and XCUI TestAppium vs Espresso and XCUI Test
Appium vs Espresso and XCUI Test
 
Managing Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the EnterpriseManaging Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the Enterprise
 
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
Automated Testing and Continuous Integration for Mobile Apps: Jenkins & Cloud...
 
How to Test Security and Vulnerability of Your Android and iOS Apps
How to Test Security and Vulnerability of Your Android and iOS AppsHow to Test Security and Vulnerability of Your Android and iOS Apps
How to Test Security and Vulnerability of Your Android and iOS Apps
 
Fight back android fragmentation
Fight back android fragmentationFight back android fragmentation
Fight back android fragmentation
 
The Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and TestingThe Powerful and Comprehensive API for Mobile App Development and Testing
The Powerful and Comprehensive API for Mobile App Development and Testing
 
Continuous delivery mobile application development
Continuous delivery mobile application developmentContinuous delivery mobile application development
Continuous delivery mobile application development
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
 
Real Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated TestingReal Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated Testing
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
 
DevOps for Mobile: Delivering a 5-Star App Experience to Your Mobile Users
DevOps for Mobile: Delivering a 5-Star App Experience to Your Mobile UsersDevOps for Mobile: Delivering a 5-Star App Experience to Your Mobile Users
DevOps for Mobile: Delivering a 5-Star App Experience to Your Mobile Users
 
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game Testing
 
[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team[Srijan Wednesday Webinars] Building a High Performance QA Team
[Srijan Wednesday Webinars] Building a High Performance QA Team
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
 
Ensure Your Mobile Channels Generate Revenue on Holiday Peak Days
Ensure Your Mobile Channels Generate Revenue on Holiday Peak DaysEnsure Your Mobile Channels Generate Revenue on Holiday Peak Days
Ensure Your Mobile Channels Generate Revenue on Holiday Peak Days
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 

Andere mochten auch

Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
Dynatrace
 

Andere mochten auch (20)

Getting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App TestingGetting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App Testing
 
Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017Boston meetup blaze_meter_feb2017
Boston meetup blaze_meter_feb2017
 
Deploy your app with one Slack command
Deploy your app with one Slack commandDeploy your app with one Slack command
Deploy your app with one Slack command
 
Geekit -Testing Services
Geekit -Testing ServicesGeekit -Testing Services
Geekit -Testing Services
 
Travis and fastlane
Travis and fastlaneTravis and fastlane
Travis and fastlane
 
Closing the Visibility Gap | How to Combine Application & Infrastructure Moni...
Closing the Visibility Gap | How to Combine Application & Infrastructure Moni...Closing the Visibility Gap | How to Combine Application & Infrastructure Moni...
Closing the Visibility Gap | How to Combine Application & Infrastructure Moni...
 
Análisis lectura ¿qué es una constitución?
Análisis lectura   ¿qué es una constitución?Análisis lectura   ¿qué es una constitución?
Análisis lectura ¿qué es una constitución?
 
A Research Study into DevOps Bottlenecks
A Research Study into DevOps BottlenecksA Research Study into DevOps Bottlenecks
A Research Study into DevOps Bottlenecks
 
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTreeThe Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
The Mobile ToolChain with Fastlane - Code Red Talk at RedBlackTree
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS Apps
 
Devops (start walking in the same direction) by ops
Devops (start walking in the same direction) by opsDevops (start walking in the same direction) by ops
Devops (start walking in the same direction) by ops
 
DevOps for the Mobile Enterprise: Test and Deploy
DevOps for the Mobile Enterprise: Test and DeployDevOps for the Mobile Enterprise: Test and Deploy
DevOps for the Mobile Enterprise: Test and Deploy
 
Practical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User MonitoringPractical Tips for Ops: End User Monitoring
Practical Tips for Ops: End User Monitoring
 
Best Practices In Exploratory Testing
Best Practices In Exploratory TestingBest Practices In Exploratory Testing
Best Practices In Exploratory Testing
 
Mobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsMobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue Solutions
 
Techniques, Tips & Tools For Mobile App Testing
Techniques, Tips & Tools For Mobile App TestingTechniques, Tips & Tools For Mobile App Testing
Techniques, Tips & Tools For Mobile App Testing
 
Mobile App Testing
Mobile App TestingMobile App Testing
Mobile App Testing
 
DevOps 101 - Moving Fast with Confidence
DevOps 101 - Moving Fast with ConfidenceDevOps 101 - Moving Fast with Confidence
DevOps 101 - Moving Fast with Confidence
 
Testing Your Android and iOS Apps with Appium in Testdroid Cloud
Testing Your Android and iOS Apps with Appium in Testdroid CloudTesting Your Android and iOS Apps with Appium in Testdroid Cloud
Testing Your Android and iOS Apps with Appium in Testdroid Cloud
 
DevOps at DreamLab
DevOps at DreamLabDevOps at DreamLab
DevOps at DreamLab
 

Ähnlich wie Exercising and Scaling Up Mobile DevOps in the Enterprise

From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
Dynatrace
 

Ähnlich wie Exercising and Scaling Up Mobile DevOps in the Enterprise (20)

DevOps & DevEx
DevOps & DevExDevOps & DevEx
DevOps & DevEx
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
How Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivityHow Azure DevOps can boost your organization's productivity
How Azure DevOps can boost your organization's productivity
 
DevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay ApplicationDevOps Pipeline for Liferay Application
DevOps Pipeline for Liferay Application
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks How to go from waterfall app dev to secure agile development in 2 weeks
How to go from waterfall app dev to secure agile development in 2 weeks
 
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform EnvironmentsDeployment Automation for Hybrid Cloud and Multi-Platform Environments
Deployment Automation for Hybrid Cloud and Multi-Platform Environments
 
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree	Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
Building an In-House DevOps Service Platform for Mobility Solutions | Mindtree
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Optimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps PipelineOptimizing Test Coverage throughout the DevOps Pipeline
Optimizing Test Coverage throughout the DevOps Pipeline
 
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHubIncrease the Velocity of Your Software Releases Using GitHub and DeployHub
Increase the Velocity of Your Software Releases Using GitHub and DeployHub
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
Agile Secure Cloud Application Development Management
Agile Secure Cloud Application Development ManagementAgile Secure Cloud Application Development Management
Agile Secure Cloud Application Development Management
 
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
 
How to Add Perfecto to Your CI
How to Add Perfecto to Your CIHow to Add Perfecto to Your CI
How to Add Perfecto to Your CI
 
Journey toward3rdplatform
Journey toward3rdplatformJourney toward3rdplatform
Journey toward3rdplatform
 
Visual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximoVisual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximo
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 

Mehr von Bitbar

Mehr von Bitbar (9)

The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
The Best of Both Worlds - Combining Performance and Functional Mobile App Tes...
 
How to Reliably Measure and Optimize Graphics Performance of Your Android Games
How to Reliably Measure and Optimize Graphics Performance of Your Android GamesHow to Reliably Measure and Optimize Graphics Performance of Your Android Games
How to Reliably Measure and Optimize Graphics Performance of Your Android Games
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
 
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
 
Which One Works You The Best: In-House or Cloud-Based Development Environment
Which One Works You The Best: In-House or Cloud-Based Development EnvironmentWhich One Works You The Best: In-House or Cloud-Based Development Environment
Which One Works You The Best: In-House or Cloud-Based Development Environment
 
The Status of Android Hardware and Software - From App Developer's Point of View
The Status of Android Hardware and Software - From App Developer's Point of ViewThe Status of Android Hardware and Software - From App Developer's Point of View
The Status of Android Hardware and Software - From App Developer's Point of View
 
Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?
 
Maximize the Benefits from Your Test Automation Investment
Maximize the Benefits from Your Test Automation InvestmentMaximize the Benefits from Your Test Automation Investment
Maximize the Benefits from Your Test Automation Investment
 
Android testing
Android testingAndroid testing
Android testing
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

Exercising and Scaling Up Mobile DevOps in the Enterprise

  • 1. The Mobile DevOps Company Ville-Veikko Helppi Head of Demand Generation ville-veikko.helppi@bitbar.com Exercising and Scaling Up Mobile DevOps in the Enterprise WEBINAR
  • 2. Mobile DevOps •  The ‘Mobile DevOps’, Process and Tools •  Infrastructure & Architecture •  Tips & Tricks for Scaling Up •  Troubleshooting Device Lab •  Demo •  Summary – Q&A Agenda More information about Mobile DevOps can be found at bitbar.com © Bitbar Technologies 2017 – h7p://bitbar.com
  • 4. •  On-Demand Mobile Device Infrastructure •  Support Any Development & Testing Framework •  Automate, Automate, Automate – To Save Time, Money and Hassle •  Provide Unprecedented Scale and Throughput •  Allow For Creative Use (Open API, Customizable Integrations) •  Adopt Mobile Development Thought Leadership and Expertise Support all development stages: Prototyping Development Testing Production Monitoring Successful Adoption of Mobile DevOps
  • 5. •  Modern mobile app development is Agile, but infrastructure does not support Agility well •  DevOps practices are emerging in to the intersection of Development, QA and Operations •  DevOps practice emphasizes the collaboration and communication of both software developers and operations while automating the process of software delivery and infrastructure changes •  DevOps practice establishes a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably. Mobile DevOps and Agile Development QA Operations Dev Ops © Bitbar Technologies 2017 – h7p://bitbar.com
  • 6. SPEED WINS It’s a simple fact. The faster you can deliver new applications, features and upgrades to market, and collect feedback, the better your business performs. For that you need higher development pace. And a lot of automation. THERE IS A DEMAND FOR MOBILE DEVOPS DevOps practices and tools have revolutionized the pace and quality of service delivery – but only for traditional server-based apps. FRAGMENTATION WITH TOOLS In mobile the delivery pipelines are more complex – in terms of tools and used methods. Cohesive and well-integrated development tool flow derives from Mobile DevOps practices. MANUAL DOING IS NOT EFFECTIVE Every stage requires a lot of manual work and silo’ed solutions from various vendors and/or open source tools. Why Mobile DevOps © Bitbar Technologies 2017 – h7p://bitbar.com
  • 7. Delivery Pipeline for Mobile Apps Development Source Code Management SCM Build Test Deploy Production Dev Tools: •  IDEs •  JIRA •  Slack •  etc. SCM: •  Git/GitHub/ GitLab •  Bitbucket •  MSFT •  etc. Continuous Integration and Build Automated Testing Automation for app store deployment, beta testers & enterprise app stores Production Monitoring and feedback to Dev © Bitbar Technologies 2017 – h7p://bitbar.com
  • 8. Delivery Pipeline with Mobile DevOps Development Source Code Management SCM Build Test Deploy Production Dev Tools: •  IDEs •  JIRA •  Slack •  etc. SCM: •  Git/GitHub/ GitLab •  Bitbucket •  MSFT •  etc. Continuous Integration and Build Automated Testing Automation for app store deployment, beta testers & enterprise app stores Production Monitoring and feedback to Dev The Scope of Mobile DevOps © Bitbar Technologies 2017 – h7p://bitbar.com
  • 9. Mobile DevOps - User Experience Development /IDE SCM Build Automated Testing Deploy / Release “Production” Automated builds for every code change Built binaries automatically tested Tested applications, Screenshots for various devices and languages, certificates, metadata ready to push to App stores Deploy To Devices Test apps in real world (Synthetic) Apps Used by Users •  Synthetic Monitoring •  Real User Monitoring Beta Testing (Humans) © Bitbar Technologies 2017 – h7p://bitbar.com
  • 12. The ‘Shift-Left’ – What People Think It Is Shi>-Le> TesAng (happens earlier) TradiAonal TesAng (happens before release) © Bitbar Technologies 2017 – h7p://bitbar.com
  • 13. The ‘Shift-Horizontal’ Is The Way Forward © Bitbar Technologies 2017 – h7p://bitbar.com
  • 14. Hardware & Software for Efficient and Scalable Mobile DevOps
  • 15. •  Parallelism, and Lots of Real Mobile Devices (Plug-and-Play) •  Mobile Test Automation Frameworks and Appropriate Use of Those •  Easy to Adopt, Deploy and Use Admin Configurability •  Use of Virtual Machines & Containers (Cloud, On-Premise) •  Open API and Ability to Integrate with Any Tools •  Efficient Use of Resources Support all development stages: Prototyping Development Testing Production Monitoring What Enables Scalability?
  • 16. Three Deployment Options for Test Automation with Devices Public Cloud Private Cloud On-Premise Reserved & User-Specific Devices Shared & Publicly Available Devices Hosted by Vendor Hosted Locally © Bitbar Technologies 2017 – h7p://bitbar.com
  • 17. UNPRECEDENTED SCALE By automating the creation, validation and deployment of the containers we are able to deploy large number of identical device servers in matter of minutes. ALWAYS CLEAN EXECUTION ENVIRONMENT New pristine container is started for each test session so that the environment is always identical from one session to another. FAST AND EASY TO UPDATE AND MAINTAIN Any updates need to be made only to the scripts that create the container images and the changes are orchestrated to all device servers ALLOWS RUN TIME CUSTOMIZATION OF THE ENVIRONMENT Because the tests are executed inside the container we can allow users to customize the environment any way they like during the test session. Why Containers Host Container 1 Container 2 Container 3 Container n … © Bitbar Technologies 2017 – h7p://bitbar.com
  • 18. Because the tests are executed inside the container we can allow users to customize the environment any way they like during the test session. This is done by using the run.sh script that is used to launch the the container session. Any shell command or tool that is installed on the container can be called from run.sh script. For instance you can build anything with Maven: mvn clean test –DexecutionType=serverside or install some library or tool with Brew brew install python Customizing The Environment Host Container 1 Container 2 Container 3 Container n … © Bitbar Technologies 2017 – h7p://bitbar.com
  • 19. #!/bin/bash startAppium(){ if [ "$(uname)" == "Darwin" ]; then startAppiumOSX elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then startAppiumLinux else echo "Unknown OS system, exiting..." exit 1 fi } executeTests(){ echo "Extracting tests.zip..." unzip tests.zip if [ "$(uname)" == "Darwin" ]; then echo "Running iOS Tests..." mvn clean test -Dtest=IosAppiumExampleTest -DexecutionType=serverside elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then echo "Running Android Tests..." mvn clean test -Dtest=AndroidAppiumExampleTest -DexecutionType=serverside fi echo "Finished Running Tests!" cp target/surefire-reports/junitreports/TEST-*.xml TEST-all.xml } startAppium executeTests Example of run.sh Script Host Container 1 Container 2 Container 3 Container n … © Bitbar Technologies 2017 – h7p://bitbar.com
  • 20. Example: iOS Virtual Machine Components 1.3.6, 1.4.3, 1.4.13, 1.4.16, 1.6.0, 1.6.3 + Appium_Helper: 1.3.6, 1.4.3, 1.4.13 0.20.4 Test AutomaAon Frameworks Dependencies and ‘Middleware’ iTunes Programming Languages Core Tools © Bitbar Technologies 2017 – h7p://bitbar.com
  • 21. Example: iOS Virtual Machine Components 1.3.6, 1.4.3, 1.4.13, 1.4.16, 1.6.0, 1.6.3 + Appium_Helper: 1.3.6, 1.4.3, 1.4.13 WGET ideviceinstaller Ios-webkit-debug-proxy usbmuxd/iproxy 0.20.4 AddiAonal frameworks 2.4.9 8.x / 7.x Settings & Config to VM •  Disable software updates, Disable screensaver, Disable sleeping, Disable Spotlight mds agent, Remove dock items, Disable hibernation, Remove sleepimage •  Remove swap files, Zero out free space, Shrink disk •  Set up /etc/hosts, Remove old Keychains, Import keychain •  Create ~/Library/MobileDevice directory, Create ~/Library/ MobileDevice/Provisioning Profiles directory •  Import mobileprovision © Bitbar Technologies 2017 – h7p://bitbar.com
  • 22. Mobile Test Automation Frameworks XCTEST/ XCUITEST UIAUTOMATOR ESPRESSO APPIUM CALABASH ANDROID No Yes Yes Yes Yes IOS Yes No No Yes Yes MOBILE WEB Yes Limited to x.y clicks No Yes No LANGUAGE Obj-C/Swift Java Java Almost any Ruby TOOL FOR TEST CREATION Xcode UIAutomator viewer Hierarchy viewer Appium.app CLI (Human-Readable syntax) COMMUNITY Apple Google Google Community Community © Bitbar Technologies 2017 – h7p://bitbar.com
  • 24. •  Easy to setup & easily extendable •  Time-independent •  Backward compatibility (supporting various API levels) •  A custom Instrumentation TestRunner with special privileges •  Works on any API levels •  Thin layer on top of Android Instrumentation Framework © Bitbar Technologies 2017 – h7p://bitbar.com
  • 25. •  Integral part of Xcode, works with both real devices and simulator •  XCTest allows developers to write tests for components at any level •  XCUITest provides rich UI testing capabilities for apps •  Objective-C / Swift •  Nearly all frameworks (Appium, EarlGrey) are working in conjuction with XCTest •  Bitbar Testing products support XCTest + XCUITest with all deployment options XCTest / XCUITest © Bitbar Technologies 2017 – h7p://bitbar.com
  • 26. •  Different Deployment Options o  Hosted in various locations (data centers) o  Co-location o  On-premise •  Infrastructure Support o  Wireless carrier support o  Rooted devices (optional) o  Support for hardware add-ons (i.e. Bluetooth, Wearables, etc) •  Security (seriously!) o  Isolated network o  Dedicated hardware resources o  VPN Support o  OAuth/SSO What Also Helps Scaling Up? © Bitbar Technologies 2017 – h7p://bitbar.com
  • 27. Private Cloud / Enterprise Support •  Network Test Support o  Network Performance Optimization o  Charles Proxy o  Fiddler •  Performance o  Built-in CPU / Memory tracking •  Graphics Benchmarking Integration o  FPS, GPU utilization, battery usage, etc •  Value-Added Services o  API Implementations o  On-demand scripting o  Video recording o  Custom reporting / formatting © Bitbar Technologies 2017 – h7p://bitbar.com
  • 28. iOS Device Cluster Server Mac OS 1.9 or later, i5 or greater CPU, 4GB RAM or 16GM Minimum for Parallel Device Runs, 256GB Hard Disk Minimum Android Device Cluster Server Ubuntu Linux 12.04, i5 or Greater CPU, 4GB RAM Minimum, 500MB Hard Disk, 10 Port USB 3.0 Hub or 1USB 3.0 Port per Device, Motherboard with BIOS that supports turning off USB Power Saving. Up to 10 Android devices per Machine. Web Front End Server Ubuntu Server 12.04 LTS 64-Bit (Virtual or Physical), 4-Core CPU Minimum, 16GB of RAM Minimum, 500GB Hard Disk Space, 1GBit Ethernet Connectivity Database Server Ubuntu Server 12.04 LTS 64-Bit (Virtual or Physical), 4-Core CPU Minimum, 8GB of RAM Minimum, 2TB Minimum of Hard Disk, Storage in RAID Array, 1GBit Ethernet Connectivity Other Equipment To Consider Server Racks, USB Cables, PDUs, WiFi Routers, UPS Hardware Infrastructure n © Bitbar Technologies 2017 – h7p://bitbar.com
  • 30. •  Devices o  So many things can go wrong … •  Infrastructural Hardware o  Device Control Hardware •  ADB and Instruments/Tools •  Hard Disks/Storage •  RAM o  USB •  Hubs •  Cables •  Network o  WiFi o  Cellular •  Software o  Jenkins/CI o  SCM o  Test Automation Frameworks 80% The Most Typical Problems 10% 5% 5% © Bitbar Technologies 2017 – h7p://bitbar.com
  • 31. The most typical problems •  Device doesn’t show up o  CI/On-Premise Solution/etc •  Device doesn’t react •  Device doesn’t start tests/run •  Device is out of battery/battery level low •  Device shows notifications Troubleshooting Mobile Devices Daily Check-Ups for Mobile Devices In order to maintain device farm, environment and all aspects of SW & HW, the following daily checks are recommended: •  Are devices powered up? •  Are all devices WiFi connected? •  Do all devices have an active USB connection? •  Are battery levels at least 50% (for every device)? •  Are there any pop-ups, system notifications, or other system dialogs open on device screen? •  Are screens unlocked? We recommend checking every device 3 times/day. © Bitbar Technologies 2017 – h7p://bitbar.com
  • 32. Too Many Devices Connected / Device Server •  Too large device cluster •  Maximum of ... o  3 iOS devices per Mac Mini o  10 Android devices per Linux server •  Enough harddisk/storage for all servers We recommend checking & cleaning harddisks (with a shell script) every day. Typical Mistakes (and How To Tackle) Device Server Check-Ups In addition to checking logs on server machines, it’s highly recommended to check following things: •  Diskspace on all machines (script) •  Available RAM (script) •  Do all devices have an active USB connection? •  Available and consumption of CPU for peaks •  Network conditions We recommend automated scripts for checking above-listed items every day. © Bitbar Technologies 2017 – h7p://bitbar.com
  • 33. Network Not Working Properly •  Need to check if network is working •  Network for ALL connected devices •  Take WiFi down and up – try connection with your browser We recommend checking network connection 6-9 times every day. Typical Mistakes (and How To Tackle) Other Software Not Working Properly Again, check all logs, that contain important information about the system and health of the environment: •  Syslog (on all server machines) •  Catalina out (on application server) •  Jenkins logs (on device servers) •  MySQL errors (and their logs) We recommend checking these items every day. In addition, it’s recommended to implement alarm script to notify about any occurring problems. © Bitbar Technologies 2017 – h7p://bitbar.com
  • 34. PROBLEM: If none of the devices connected to one device server are running tests (and you can’t initiate any manual session) SOLUTION: Majority of issues seen with non-running tests are related to Jenkins •  Check Jenkins log (https://hostname:8080/log/all) •  Restart Jenkins – https://hostname:8080/safeRestart •  Restart the device server Troubleshooting - Mobile Devices PROBLEM: Device is not running any tests. SOLUTION: First, try if you can establish a manual test session with any of your devices. If not, follow these steps: •  Check that device is powered and visible on Jenkins o  https://hostname:8080/android-devices or http://hostname:8080/ios-devices •  Check that device is available in Bitbar On-Premise o  https://cloudservername:9080/#service/admin/configuration © Bitbar Technologies 2017 – h7p://bitbar.com
  • 35. PROBLEM: Tests fail without running the test script successfully. Fail can happen at init or any phase of the script execution. SOLUTION: Find the exact error and follow these steps: •  Retrying test run is a good idea to see if the error is random or reproducable •  Check test run and device run views for logs and errors •  Check console.log for the test run •  Common failures: 1) app installation failed, 2) test zip structure is invalid, 3) Xcode didn’t start (iOS) Troubleshooting - Mobile Devices PROBLEM: None of devices are running any tests. SOLUTION: Start with logs. In all cases, the logs contain information about errors, wrong behavior and root cause of issues can be found in those. Start with these: •  First check application server log (catalina.out) •  Check available diskspace •  Then restart Application server (sudo reboot now) © Bitbar Technologies 2017 – h7p://bitbar.com
  • 36. Troubleshooting – Mobile Devices © Bitbar Technologies 2017 – h7p://bitbar.com
  • 37. Test On Real Devices Automation - Quickly and Efficiently Use Existing Assets Now and Future Tools Platform Designed For Agile Development •  Test real world scenarios on real, non-emulated devices with 100% certainty •  See exactly what the user experiences •  Reduce time and headache of device acquisition and management The Key Things to Boost Mobile DevOps •  Use any automation framework or test exercisers (e.g. Testdroid App Crawler) to get instant reports and results •  Hit the ground running and get actionable results on a wide range of devices •  Run more tests across more devices in less time, with fewer resources •  Bring your own hardware, tools and frameworks and the Bitbar team will integrate them into the cloud •  Bitbar solutions will not lock you in to any tool or automation framework •  No vendor lock-in means that you have a long term and future proof platform for all of your mobile development and testing needs •  Bitbar integrates seamlessly to your development tools and CI process •  Instant results give immediate feedback to the development team •  Faster iterations mean more efficient development, faster time to market and more satisfied users © Bitbar Technologies 2017 – h7p://bitbar.com
  • 39. Summary – Q&A More information about mobile app testing, mobile monitoring and mobile devops at bitbar.com