SlideShare a Scribd company logo
Speed to Market in
Mobile Development
Finding the right solution with continuous
integration on real devices
Tina Su, Director of Development, Intuit
About me
Nearly 20 years of industry experience in R&D,
quality and engineering management, with a strong
passion for automation.
§  Engineering Director at Intuit, Developer Productivity
§  Sr. Engineering Director at Yahoo, Mobile Platforms
§  Sr. Engineering Manager at Sun, Java Standard and
Mobile Editions
§  Compiler Developer at MIPS and Tandem
Tina Su, Intuit
Agenda
§  Mobile trends & developers’ challenges
§  Speed & quality through continuous integration
- Intuit Virtual Device Lab
- Intuit mobile test automation
§  Takeaways
Aggressive mobile momentum
“2013 Internet Trends,” KPCB
Will surpass desktop
by 2014
It should just work!
Proliferation of platforms,
OS versions & device types
Developer challenges
§  Immense configuration matrix
-  OS platforms (Android, iOS, Windows, phone vs. tablet, …)
-  Inputs (touch/gesture, real buttons, voice, camera, GPS receiver)
-  Outputs (portrait/landscape, screen resolution, language)
§  Application delivery through the markets
-  App signing, provision (app & device), submission
§  Offline experience
-  Network, different network bandwidth/latency, no-network
-  HTML5 offline app
§  Media challenges
-  Some codecs don’t work on a device
-  Streaming, sound
§  Security & privacy
Intuit mobile app portfolio today
Apple	

Google	

Amazon	

SMS	

0	

 5	

 10	

 15	

 20	

 490	

22	

15	

11	

3	

491 mobile apps for financial institutions
Ramping up Intuit’s innovation engine
Pain: Takes days per build to test
combinations of device/OS configurations
physically & manually, one by one …
QA can’t keep up with the changes
Goal: Reduce development iteration cycle
from days to minutes on an ever-growing
number of devices
Strategy: Speed & quality through mobile
continuous integration
•  iPhone 4
•  iPhone 4S
•  iPhone 5
•  iPad 2
•  iPad 3
•  iPad Mini
Devices OS versions
•  iOS 5.0
•  iOS 5.1
•  iOS 6.0
•  iOS 6.1.x
•  iOS 7.0
Builds
X X
Daily
builds
•  Apple
•  Google
•  Amazon
Platforms
X
Continuous integration (CI)
What is CI?
§  Automate build, test & deployment process
§  Integrate & build early, often, daily, for every check-in
§  Best practice of Agile development
§  Jenkins is widely adopted, flexible & extensible
Benefits of CI in a mobile world
§  Instant feedback on quality, functionality & system impact
§  Less complex, no integration hell
§  Detect and address device configuration issues early
§  Involve stakeholders early
§  Ultimately achieve shippable release any time
Speed and quality
through mobile CI
Key enablers:
•  Mobile device lab
•  Test automation
Test processorReal
devices
Jenkins
SCM:
source
repository
Developers/
IDE
Automatic
test run
Test results
Submit the app to
app store if passed
Check in
Check-in
triggers
automated CI
Install the test app to
real devices in parallel
Run tests on real
devices in parallel
Analyze
test results
Trigger testing in
mobile device lab
Process starts here
3rd-party vendor solutions didn’t work for us
§  Couldn’t handle E2E automation of testing pre-release apps
-  Dependency on internal resources & infrastructure
§  Vendor lock-in: customized CI & test automation solutions
-  No flexibility to use our existing tools & frameworks
§  Disadvantages of vendors’ shared devices
-  Security concern on testing on shared devices
-  No access to corporate network
-  Cost-prohibitive to reserve devices
§  Private cloud (on-site setup) with local devices not practical
-  With sensitive customer data, we need private cloud
-  Extensive use of devices for daily testing of hundreds of mobile apps is expensive
Why test on real devices?
Most mobile features can be tested on simulators, but
simulators have limitations:
§  Device capabilities (GPS, camera, accelerometer, gyros),
form factors & pixel density
§  Real-world experience over the real connection
(3G, 4G, crappy Wi-Fi, etc.)
§  True performance, security tests
§  Testing on non-default Web browsers (e.g., Opera Mini)
§  Not all simulator/emulators have good quality
(don’t reflect real rendering/behavior, bugs)
§  Testing SMS & app integration
Intuit Virtual Device Lab
Intuit Virtual Device Lab (VDL)
Gives access to real mobile devices using a browser
Intranet
VDL
User machine
User machine
User machine
3-click access
Always on
Integrated with
dev infrastructure
Globally available
iPhone
iPad
Galaxy
Captivate
Optimus Nexus One
Desire
Incredible
Manufacturers/
devices: 	

Droid
Milestone
Moto
VDL architecture – Android
Windows PC
Tomcat
Java image
transferring
application
Browser 
Java applet
Internet/
intranet
Device
interaction app
Developer’s laptop
VDL
Image transfer
USB connection
VDL architecture – iOS
Mac with Xcode
installed
Tomcat
Java VNC
client
Port forwarding
Browser 
Java applet
Internet/
intranet
VNC server
USB connection
Developer’s laptop
VDL
Open source tools  technologies used in VDL
Key capabilities Android iOS
Installing mobile applications into
the real device
adb install APK file Fruitstrap
https://github.com/ghughes/
fruitstrap
Transferring device screen images,
controlling device
Screencast tool
http://code.google.com/p/
androidscreencast
Veency VNC app
Fetching device local files adb pull filename sftp command
(jailbroken devices only)
VDL key features  functionality today
Control the device through standard browser/
RESTful APIs
Change orientation to landscape or portrait
Copy local file to the device from your PC
Get file from the device onto your local PC
Execute an ADB command on the device
See current running logs in your browser
Download history logs to your local PC
Continuous integration – how it works
Product builds
Trigger file launches test
VDL device
inventoryResource
manager
Select a device
Test execution
engine
Results
Monitor
for new
builds
Mobile continuous integration
Leveraging the Virtual Device Lab for test automation on multiple, real devices simultaneously.
Submit, build, test … in minutes vs. hours
Select devices  tests1 Tests run automatically across selected
devices with each build
2 See the results!3
Next step: over-the-air replaces USB connection
Fast onboarding
Scalable
Any device
Internet/
intranet
App
installation
Test
execution
Results
retrieval
VDL
Mobile Test Automation
Mobile test automation tools
Instrumentation-based
Non-instrumentation
AndroidiOS
MonkeyRunner
MOET
Sikuli
Android SDK
Robotium
TestDroid (BitBar)
Calabash
(LessPainful)
Soasta
iOS SDK
UIAutomation
UISpec
Frank
MonkeyTalk
DA/
PerfectoMobile
eggPlant
Cross-platform solution
iOS Driver Appium
•  Assessed as of 2012
Mobile test automation trends
§  Abstraction with domain-specific language (DSL)
-  Common test script over different devices (e.g., Cucumber, MonkeyScript, MOET)
-  Support behavior-driven development (BDD)
§  Client/server-based approach (remotely driven tests via HTTP)
§  Instrumentation  non-instrumentation solutions complement
each other
§  Mobile cloud testing environment
-  From hardware (cradle) to software approach to drive tests on
real devices
§  Automated OTA app installation  tests
Intuit automation framework of choice/recommendation
§  Native apps:
-  Cucumber + Calabash for BDD on iOS  Android
§  Mobile Web:
-  Selenium/WebDriver
What is Cucumber?
It lets stakeholders (customers, QE or developers) describe how
software should behave in plain text.
§  BDD: Written in business domain-specific language (DSL)
-  Good abstraction over different device types
§  One format for multiple purposes
-  UI feature specification
-  Automated tests
§  Cucumber itself is NOT a test automation tool
-  Add-on to any test automation framework
-  Examples: Calabash, Sikuli  Frank mobile test frameworks
What is Calabash?
§  Open source cross-platform mobile test framework
-  iOS + Android, simulator + real device, native + hybrid
§  Supports Cucumber for BDD
§  Application needs instrumentation that embeds a Calabash HTTP server
-  Tests run from a remote client (in a Jenkins slave)
-  Tests can be driven via Wi-Fi (no USB wire)
§  Ruby clients in API level (Java clients in experiment)
§  Works better in touch simulation  real device testing
§  Mobile cloud test execution available by LessPainful
Intuit shared test library – rapid test development
Internal open source repository
Teams focus on creating
Use shared test lib
… and then contribute to
common test library
Tests
Contribute
Tests
Common test library Product tests
TestsTests
Globalization test framework
(I18N/L10N)
Performance/load test framework
Security test framework
Native/hybrid test framework
High-level test domain-specific language
(Cucumber steps)
Mobile
back-end
Mobile
front-end
Code
build
Deploy
Test
Results
Connect
device
Notify
email
Get
devices
Consolidate
report
Upload
report
From: manual
50*5
= 250
15 30
5
10
20
15
30 10
= 6 hours
Code
build
Trigger
Execute tests
in parallel
Consolidated
report in archive
Deploy on
devices
0 5 10 0
= 15 mins
To: automated CI
TIME SAVED: 95%Release quality increased
*
Stunning results: reduced iteration cycle from hours to minutes
Tested on 5 devices
VDL cost saving over vendors’ private clouds (today)
Annual
cost ($)
# of devices
Intuit Virtual Device Lab
150
3rd-party vendor 1
local device in cradle
Assumptions: 50 native
apps  daily check-in
Note: As vendor pricing
changes, so do the savings
Savings
25
3rd-party vendor 2
local device w/o cradle
(Software approach)
Savings
Private cloud setup behind corp firewall
Key takeaways
Building custom solution vs. 3rd-party vendor solution
§  Understand your technical/platform/global spread
§  Many vendor solutions provide a larger set of devices/OS versions
in the global market
§  Quite a few offer mobile test services – might be tightly coupled with their
device access solution  automation framework
§  Connecting to your corporate network is a challenge – some provide
private cloud (on-site setup within your network) but it’s cost-prohibitive
Invest in automation and CI
§  Automate tests with robust automation framework
§  Enable rapid test development through shared test library
§  Adopt CI in mobile development for speed  quality
More mobile innovations at Intuit
§  Mobile crash reporter
§  Mobile components  design patterns
§  Mobile analytics SDK  gateway
Visit booth #601 – Accelerate Development
§  Demos  conversations
§  Contest
§  Mobile device charging station
§  Foosball
§  We’re hiring !
Win a weekend with a TESLA!
Thank you!!
Tina_Su@intuit.com

More Related Content

What's hot

Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
Lee Barnes
 
Best Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App TestingBest Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App Testing
Bitbar
 
Mobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariMobile Application Testing by Javed Ansari
Mobile Application Testing by Javed Ansari
Javed Ansari
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game Testing
Bitbar
 
Performance testing – mobile apps session1
Performance testing – mobile apps   session1Performance testing – mobile apps   session1
Performance testing – mobile apps session1
Jyothirmayee Pola
 
Selenium training
Selenium trainingSelenium training
Selenium training
Shivaraj R
 
SeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by ExperitestSeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by Experitest
Experitest
 
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
Bitbar
 
Mobile testing day_2_3_ppt
Mobile testing day_2_3_pptMobile testing day_2_3_ppt
Mobile testing day_2_3_ppt
sayhi2sudarshan
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
vodQA
 
Wearables meetup
Wearables meetupWearables meetup
Wearables meetup
Perfecto Mobile
 
Quality in dev ops east 2017
Quality in dev ops east 2017Quality in dev ops east 2017
Quality in dev ops east 2017
Amir Rozenberg
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
Mindfire Solutions
 
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
Bitbar
 
SaaS Digital Assurance Lab
SaaS Digital Assurance LabSaaS Digital Assurance Lab
SaaS Digital Assurance Lab
Experitest
 
Mobile Testing Tools 101
Mobile Testing Tools 101Mobile Testing Tools 101
Mobile Testing Tools 101
TechWell
 
Basic Guide For Mobile Application Testing
Basic Guide For Mobile Application TestingBasic Guide For Mobile Application Testing
Basic Guide For Mobile Application Testing
Sourabh Kasliwal
 
How to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App TestingHow to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App Testing
Bitbar
 

What's hot (18)

Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
 
Best Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App TestingBest Practices for DevOps in Mobile App Testing
Best Practices for DevOps in Mobile App Testing
 
Mobile Application Testing by Javed Ansari
Mobile Application Testing by Javed AnsariMobile Application Testing by Javed Ansari
Mobile Application Testing by Javed Ansari
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game Testing
 
Performance testing – mobile apps session1
Performance testing – mobile apps   session1Performance testing – mobile apps   session1
Performance testing – mobile apps session1
 
Selenium training
Selenium trainingSelenium training
Selenium training
 
SeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by ExperitestSeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by Experitest
 
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
 
Mobile testing day_2_3_ppt
Mobile testing day_2_3_pptMobile testing day_2_3_ppt
Mobile testing day_2_3_ppt
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Wearables meetup
Wearables meetupWearables meetup
Wearables meetup
 
Quality in dev ops east 2017
Quality in dev ops east 2017Quality in dev ops east 2017
Quality in dev ops east 2017
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
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
 
SaaS Digital Assurance Lab
SaaS Digital Assurance LabSaaS Digital Assurance Lab
SaaS Digital Assurance Lab
 
Mobile Testing Tools 101
Mobile Testing Tools 101Mobile Testing Tools 101
Mobile Testing Tools 101
 
Basic Guide For Mobile Application Testing
Basic Guide For Mobile Application TestingBasic Guide For Mobile Application Testing
Basic Guide For Mobile Application Testing
 
How to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App TestingHow to Leverage Appium in Your Mobile App Testing
How to Leverage Appium in Your Mobile App Testing
 

Viewers also liked

Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitTina Su
 
Mobile CI at Etsy
Mobile CI at EtsyMobile CI at Etsy
Mobile CI at Etsy
Daniel Schauenberg
 
CI in the mobile world
CI in the mobile worldCI in the mobile world
CI in the mobile world
Godfrey Nolan
 
Speed to Market in Mobile Development
Speed to Market in Mobile DevelopmentSpeed to Market in Mobile Development
Speed to Market in Mobile Development
Tina Su
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
Stefan Verhoeff
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)
Sauce Labs
 
Mobile CI
Mobile CIMobile CI
Mobile CI
Jerel Hass
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
Drift
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
 

Viewers also liked (9)

Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
 
Mobile CI at Etsy
Mobile CI at EtsyMobile CI at Etsy
Mobile CI at Etsy
 
CI in the mobile world
CI in the mobile worldCI in the mobile world
CI in the mobile world
 
Speed to Market in Mobile Development
Speed to Market in Mobile DevelopmentSpeed to Market in Mobile Development
Speed to Market in Mobile Development
 
CI/CD for mobile at HERE
CI/CD for mobile at HERECI/CD for mobile at HERE
CI/CD for mobile at HERE
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)
 
Mobile CI
Mobile CIMobile CI
Mobile CI
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Similar to Velocity2013 mobile ci_intuit

Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development
Skytap Cloud
 
ICTestAutomation TrendIC 2016 ENGLISH
ICTestAutomation TrendIC 2016 ENGLISHICTestAutomation TrendIC 2016 ENGLISH
ICTestAutomation TrendIC 2016 ENGLISH
Marcel Diepenbroek
 
Mobile QA Metrics Risks and Automation Presentation By Yuval Golan
Mobile QA Metrics Risks and Automation Presentation  By Yuval GolanMobile QA Metrics Risks and Automation Presentation  By Yuval Golan
Mobile QA Metrics Risks and Automation Presentation By Yuval Golan
Yuval Golan
 
Mdc2010 Automated Mobile Testing
Mdc2010 Automated Mobile TestingMdc2010 Automated Mobile Testing
Mdc2010 Automated Mobile Testingmomobangalore
 
Introducing AWS Device Farm
Introducing AWS Device FarmIntroducing AWS Device Farm
Introducing AWS Device Farm
Amazon Web Services
 
IBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with Worklight
IBIZZ
 
Shift Left Mobile Application Testing
Shift Left Mobile Application TestingShift Left Mobile Application Testing
Shift Left Mobile Application Testing
Josiah Renaudin
 
Appium vs Appium with Perfecto
Appium vs Appium with PerfectoAppium vs Appium with Perfecto
Appium vs Appium with Perfecto
Lizzy Guido (she/her)
 
Appium vs. Appium with Perfecto
Appium vs. Appium with PerfectoAppium vs. Appium with Perfecto
Appium vs. Appium with Perfecto
Lizzy Guido (she/her)
 
Continuous Mobile - Testing Using Jenkins - A How To Guide
Continuous Mobile - Testing Using Jenkins - A How To GuideContinuous Mobile - Testing Using Jenkins - A How To Guide
Continuous Mobile - Testing Using Jenkins - A How To Guide
KeynoteSystems
 
Continuous Mobile Testing Using Jenkins - A How To Guide
 Continuous Mobile Testing Using Jenkins - A How To Guide Continuous Mobile Testing Using Jenkins - A How To Guide
Continuous Mobile Testing Using Jenkins - A How To Guide
KeynoteSystems
 
Mobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsMobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio Teams
Perfecto by Perforce
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Applitools
 
Juc oct 2014 final
Juc oct 2014 finalJuc oct 2014 final
Juc oct 2014 final
Perfecto Mobile
 
Learning's from mobile testing
Learning's from mobile testingLearning's from mobile testing
Learning's from mobile testing
Vikrant Chauhan
 
Mobile test automation perfecto star east
Mobile test automation perfecto star eastMobile test automation perfecto star east
Mobile test automation perfecto star east
Perfecto Mobile
 
Can We Deliver Mobile Apps Continuously?
Can We Deliver Mobile Apps Continuously?Can We Deliver Mobile Apps Continuously?
Can We Deliver Mobile Apps Continuously?
Dan Waters
 
Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...Perfecto Mobile
 
Digital Apps Development & Debugging
Digital Apps Development & DebuggingDigital Apps Development & Debugging
Digital Apps Development & Debugging
Experitest
 

Similar to Velocity2013 mobile ci_intuit (20)

Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development Webinar: Automate Your Environment Provisioning for Mobile App Development
Webinar: Automate Your Environment Provisioning for Mobile App Development
 
ICTestAutomation TrendIC 2016 ENGLISH
ICTestAutomation TrendIC 2016 ENGLISHICTestAutomation TrendIC 2016 ENGLISH
ICTestAutomation TrendIC 2016 ENGLISH
 
Mobile QA Metrics Risks and Automation Presentation By Yuval Golan
Mobile QA Metrics Risks and Automation Presentation  By Yuval GolanMobile QA Metrics Risks and Automation Presentation  By Yuval Golan
Mobile QA Metrics Risks and Automation Presentation By Yuval Golan
 
Mobile Testing
Mobile TestingMobile Testing
Mobile Testing
 
Mdc2010 Automated Mobile Testing
Mdc2010 Automated Mobile TestingMdc2010 Automated Mobile Testing
Mdc2010 Automated Mobile Testing
 
Introducing AWS Device Farm
Introducing AWS Device FarmIntroducing AWS Device Farm
Introducing AWS Device Farm
 
IBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with Worklight
 
Shift Left Mobile Application Testing
Shift Left Mobile Application TestingShift Left Mobile Application Testing
Shift Left Mobile Application Testing
 
Appium vs Appium with Perfecto
Appium vs Appium with PerfectoAppium vs Appium with Perfecto
Appium vs Appium with Perfecto
 
Appium vs. Appium with Perfecto
Appium vs. Appium with PerfectoAppium vs. Appium with Perfecto
Appium vs. Appium with Perfecto
 
Continuous Mobile - Testing Using Jenkins - A How To Guide
Continuous Mobile - Testing Using Jenkins - A How To GuideContinuous Mobile - Testing Using Jenkins - A How To Guide
Continuous Mobile - Testing Using Jenkins - A How To Guide
 
Continuous Mobile Testing Using Jenkins - A How To Guide
 Continuous Mobile Testing Using Jenkins - A How To Guide Continuous Mobile Testing Using Jenkins - A How To Guide
Continuous Mobile Testing Using Jenkins - A How To Guide
 
Mobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsMobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio Teams
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Juc oct 2014 final
Juc oct 2014 finalJuc oct 2014 final
Juc oct 2014 final
 
Learning's from mobile testing
Learning's from mobile testingLearning's from mobile testing
Learning's from mobile testing
 
Mobile test automation perfecto star east
Mobile test automation perfecto star eastMobile test automation perfecto star east
Mobile test automation perfecto star east
 
Can We Deliver Mobile Apps Continuously?
Can We Deliver Mobile Apps Continuously?Can We Deliver Mobile Apps Continuously?
Can We Deliver Mobile Apps Continuously?
 
Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...Webinar learn how to test any mobile app style from within eclipse using real...
Webinar learn how to test any mobile app style from within eclipse using real...
 
Digital Apps Development & Debugging
Digital Apps Development & DebuggingDigital Apps Development & Debugging
Digital Apps Development & Debugging
 

Recently uploaded

Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 

Recently uploaded (20)

Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 

Velocity2013 mobile ci_intuit

  • 1. Speed to Market in Mobile Development Finding the right solution with continuous integration on real devices Tina Su, Director of Development, Intuit
  • 2. About me Nearly 20 years of industry experience in R&D, quality and engineering management, with a strong passion for automation. §  Engineering Director at Intuit, Developer Productivity §  Sr. Engineering Director at Yahoo, Mobile Platforms §  Sr. Engineering Manager at Sun, Java Standard and Mobile Editions §  Compiler Developer at MIPS and Tandem Tina Su, Intuit
  • 3. Agenda §  Mobile trends & developers’ challenges §  Speed & quality through continuous integration - Intuit Virtual Device Lab - Intuit mobile test automation §  Takeaways
  • 4. Aggressive mobile momentum “2013 Internet Trends,” KPCB Will surpass desktop by 2014 It should just work! Proliferation of platforms, OS versions & device types
  • 5. Developer challenges §  Immense configuration matrix -  OS platforms (Android, iOS, Windows, phone vs. tablet, …) -  Inputs (touch/gesture, real buttons, voice, camera, GPS receiver) -  Outputs (portrait/landscape, screen resolution, language) §  Application delivery through the markets -  App signing, provision (app & device), submission §  Offline experience -  Network, different network bandwidth/latency, no-network -  HTML5 offline app §  Media challenges -  Some codecs don’t work on a device -  Streaming, sound §  Security & privacy
  • 6. Intuit mobile app portfolio today Apple Google Amazon SMS 0 5 10 15 20 490 22 15 11 3 491 mobile apps for financial institutions
  • 7. Ramping up Intuit’s innovation engine Pain: Takes days per build to test combinations of device/OS configurations physically & manually, one by one … QA can’t keep up with the changes Goal: Reduce development iteration cycle from days to minutes on an ever-growing number of devices Strategy: Speed & quality through mobile continuous integration •  iPhone 4 •  iPhone 4S •  iPhone 5 •  iPad 2 •  iPad 3 •  iPad Mini Devices OS versions •  iOS 5.0 •  iOS 5.1 •  iOS 6.0 •  iOS 6.1.x •  iOS 7.0 Builds X X Daily builds •  Apple •  Google •  Amazon Platforms X
  • 8. Continuous integration (CI) What is CI? §  Automate build, test & deployment process §  Integrate & build early, often, daily, for every check-in §  Best practice of Agile development §  Jenkins is widely adopted, flexible & extensible Benefits of CI in a mobile world §  Instant feedback on quality, functionality & system impact §  Less complex, no integration hell §  Detect and address device configuration issues early §  Involve stakeholders early §  Ultimately achieve shippable release any time
  • 9. Speed and quality through mobile CI Key enablers: •  Mobile device lab •  Test automation Test processorReal devices Jenkins SCM: source repository Developers/ IDE Automatic test run Test results Submit the app to app store if passed Check in Check-in triggers automated CI Install the test app to real devices in parallel Run tests on real devices in parallel Analyze test results Trigger testing in mobile device lab Process starts here
  • 10. 3rd-party vendor solutions didn’t work for us §  Couldn’t handle E2E automation of testing pre-release apps -  Dependency on internal resources & infrastructure §  Vendor lock-in: customized CI & test automation solutions -  No flexibility to use our existing tools & frameworks §  Disadvantages of vendors’ shared devices -  Security concern on testing on shared devices -  No access to corporate network -  Cost-prohibitive to reserve devices §  Private cloud (on-site setup) with local devices not practical -  With sensitive customer data, we need private cloud -  Extensive use of devices for daily testing of hundreds of mobile apps is expensive
  • 11. Why test on real devices? Most mobile features can be tested on simulators, but simulators have limitations: §  Device capabilities (GPS, camera, accelerometer, gyros), form factors & pixel density §  Real-world experience over the real connection (3G, 4G, crappy Wi-Fi, etc.) §  True performance, security tests §  Testing on non-default Web browsers (e.g., Opera Mini) §  Not all simulator/emulators have good quality (don’t reflect real rendering/behavior, bugs) §  Testing SMS & app integration
  • 13. Intuit Virtual Device Lab (VDL) Gives access to real mobile devices using a browser Intranet VDL User machine User machine User machine 3-click access Always on Integrated with dev infrastructure Globally available iPhone iPad Galaxy Captivate Optimus Nexus One Desire Incredible Manufacturers/ devices: Droid Milestone Moto
  • 14. VDL architecture – Android Windows PC Tomcat Java image transferring application Browser Java applet Internet/ intranet Device interaction app Developer’s laptop VDL Image transfer USB connection
  • 15. VDL architecture – iOS Mac with Xcode installed Tomcat Java VNC client Port forwarding Browser Java applet Internet/ intranet VNC server USB connection Developer’s laptop VDL
  • 16. Open source tools technologies used in VDL Key capabilities Android iOS Installing mobile applications into the real device adb install APK file Fruitstrap https://github.com/ghughes/ fruitstrap Transferring device screen images, controlling device Screencast tool http://code.google.com/p/ androidscreencast Veency VNC app Fetching device local files adb pull filename sftp command (jailbroken devices only)
  • 17. VDL key features functionality today Control the device through standard browser/ RESTful APIs Change orientation to landscape or portrait Copy local file to the device from your PC Get file from the device onto your local PC Execute an ADB command on the device See current running logs in your browser Download history logs to your local PC
  • 18. Continuous integration – how it works Product builds Trigger file launches test VDL device inventoryResource manager Select a device Test execution engine Results Monitor for new builds
  • 19. Mobile continuous integration Leveraging the Virtual Device Lab for test automation on multiple, real devices simultaneously. Submit, build, test … in minutes vs. hours Select devices tests1 Tests run automatically across selected devices with each build 2 See the results!3
  • 20. Next step: over-the-air replaces USB connection Fast onboarding Scalable Any device Internet/ intranet App installation Test execution Results retrieval VDL
  • 22. Mobile test automation tools Instrumentation-based Non-instrumentation AndroidiOS MonkeyRunner MOET Sikuli Android SDK Robotium TestDroid (BitBar) Calabash (LessPainful) Soasta iOS SDK UIAutomation UISpec Frank MonkeyTalk DA/ PerfectoMobile eggPlant Cross-platform solution iOS Driver Appium •  Assessed as of 2012
  • 23. Mobile test automation trends §  Abstraction with domain-specific language (DSL) -  Common test script over different devices (e.g., Cucumber, MonkeyScript, MOET) -  Support behavior-driven development (BDD) §  Client/server-based approach (remotely driven tests via HTTP) §  Instrumentation non-instrumentation solutions complement each other §  Mobile cloud testing environment -  From hardware (cradle) to software approach to drive tests on real devices §  Automated OTA app installation tests
  • 24. Intuit automation framework of choice/recommendation §  Native apps: -  Cucumber + Calabash for BDD on iOS Android §  Mobile Web: -  Selenium/WebDriver
  • 25. What is Cucumber? It lets stakeholders (customers, QE or developers) describe how software should behave in plain text. §  BDD: Written in business domain-specific language (DSL) -  Good abstraction over different device types §  One format for multiple purposes -  UI feature specification -  Automated tests §  Cucumber itself is NOT a test automation tool -  Add-on to any test automation framework -  Examples: Calabash, Sikuli Frank mobile test frameworks
  • 26. What is Calabash? §  Open source cross-platform mobile test framework -  iOS + Android, simulator + real device, native + hybrid §  Supports Cucumber for BDD §  Application needs instrumentation that embeds a Calabash HTTP server -  Tests run from a remote client (in a Jenkins slave) -  Tests can be driven via Wi-Fi (no USB wire) §  Ruby clients in API level (Java clients in experiment) §  Works better in touch simulation real device testing §  Mobile cloud test execution available by LessPainful
  • 27. Intuit shared test library – rapid test development Internal open source repository Teams focus on creating Use shared test lib … and then contribute to common test library Tests Contribute Tests Common test library Product tests TestsTests Globalization test framework (I18N/L10N) Performance/load test framework Security test framework Native/hybrid test framework High-level test domain-specific language (Cucumber steps) Mobile back-end Mobile front-end
  • 28. Code build Deploy Test Results Connect device Notify email Get devices Consolidate report Upload report From: manual 50*5 = 250 15 30 5 10 20 15 30 10 = 6 hours Code build Trigger Execute tests in parallel Consolidated report in archive Deploy on devices 0 5 10 0 = 15 mins To: automated CI TIME SAVED: 95%Release quality increased * Stunning results: reduced iteration cycle from hours to minutes Tested on 5 devices
  • 29. VDL cost saving over vendors’ private clouds (today) Annual cost ($) # of devices Intuit Virtual Device Lab 150 3rd-party vendor 1 local device in cradle Assumptions: 50 native apps daily check-in Note: As vendor pricing changes, so do the savings Savings 25 3rd-party vendor 2 local device w/o cradle (Software approach) Savings Private cloud setup behind corp firewall
  • 30. Key takeaways Building custom solution vs. 3rd-party vendor solution §  Understand your technical/platform/global spread §  Many vendor solutions provide a larger set of devices/OS versions in the global market §  Quite a few offer mobile test services – might be tightly coupled with their device access solution automation framework §  Connecting to your corporate network is a challenge – some provide private cloud (on-site setup within your network) but it’s cost-prohibitive Invest in automation and CI §  Automate tests with robust automation framework §  Enable rapid test development through shared test library §  Adopt CI in mobile development for speed quality
  • 31. More mobile innovations at Intuit §  Mobile crash reporter §  Mobile components design patterns §  Mobile analytics SDK gateway Visit booth #601 – Accelerate Development §  Demos conversations §  Contest §  Mobile device charging station §  Foosball §  We’re hiring ! Win a weekend with a TESLA!