SlideShare a Scribd company logo
T2	
Track	Session	
4/21/2016	11:00	AM	
	
	
"Test	Infrastructure	for	Native	and	
Hybrid	iOS	and	Android	
Applications"	
	
Presented by:
Ankit Desai & Binod Pant
MathWorks, Inc.	
	
	
	
Brought	to	you	by:	
	
	
	
340	Corporate	Way,	Suite	300,	Orange	Park,	FL	32073	
888-268-8770	·	904-278-0524	·	info@techwell.com	·	www.techwell.com
Ankit Desai
MathWorks, Inc.
At MathWorks Ankit Desai leads the MATLAB hardware team, mobile, Internet
of Things, and test and measurement quality engineering team that focuses on
architecting and authoring automated tests and test tools. In his spare time, Ankit
teaches IoT and robotics courses at local maker space. His hobbies include
learning more about the web, mobile and tech development, videography, and
photography.
Binod Pant
MathWorks, Inc.
A test automation infrastructure engineer at MathWorks, Binod Pant’s team
specializes in building automation tools for web and mobile. Binod comes with
previous experience in developing web applications and database-backed
applications. In his spare time, Binod likes to learn about new tools and tech
developments, follow developments in physics, play music, and read books.
Binod and his family reside in Boston.
3/16/2016
1
1© 2016 The MathWorks, Inc.
Test Infrastructure for Native and Hybrid
iOS and Android Applications
Ankit Desai and Binod Pant
MathWorks, Inc.
2
MathWorks at a Glance
Earth’s topography
on a Miller cylindrical
projection, created
with MATLAB and
Mapping Toolbox.
● Headquarters:
Natick, Massachusetts U.S.
● Other U.S. Locations:
California; Michigan;
Texas; Washington, D.C.
● Europe:
France, Germany, Italy,
Netherlands, Spain, Sweden,
Switzerland, United Kingdom
● Asia-Pacific:
Australia, China, India,
Japan, Korea
● Worldwide training
and consulting
● Distributors serving more
than 20 countries
3/16/2016
2
3
Core MathWorks Products
The leading environment for
technical computing
 The industry-standard, high-level
programming language
for algorithm development
 Numeric computation
 Parallel computing, with multicore and
multiprocessor support
 Data analysis and visualization
 Toolboxes for signal and image
processing, statistics, optimization,
symbolic math, and other areas
 Tools for application development
and deployment
 Foundation of MathWorks products
4
Core MathWorks Products
The leading environment for modeling,
simulating, and implementing dynamic
and embedded systems
 Linear, nonlinear, discrete-time,
continuous-time, hybrid, and
multirate systems
 Foundation for Model-Based Design,
including multidomain system modeling,
real-time testing, automatic code generation,
and verification and validation
 Open architecture for integrating models
from other tools
 Applications in controls, signal processing,
communications, physical modeling, and
other system engineering areas
3/16/2016
3
5
Additional MathWorks Products
6
MATLAB Mobile
3/16/2016
4
7
iPhone, iPad, & Android Support from Simulink
8
Teams Working on Mobile Platform
3/16/2016
5
9
Lack of support from Continuous Integration system
Lack of uniform testing API across mobile platforms
Lack of access to different configurations
Frequent test updates due to underlying tool change
Testing Pain Points
10
Test Framework
3/16/2016
6
11
Utilize in-house Continuous
Integration system
Provide consistent and reusable
API
Shield test authors from
underlying tool upgrade/change
Automate provisioning of multiple
device configurations
Test
Framework
Goals for Test Framework
12
MathWorks Continuous Integration System
SubmitCode
Build
Test
Identify Test Requirements
Lease machine with specified
requirements
Run tests
Release leased machine
Report
3/16/2016
7
13
Test Requirements
Test
Requirements
Test Platform
Software
Required
Hardware
Required
14
#1 - Preconfigured VMs/containers with mobile
configurations
#2 - External services
#3 - Mobile configuration set up during testing
Possible Solutions
3/16/2016
8
15
Preconfigured VMs/containers with mobile configurations
Idea:- Docker containers with preinstalled
emulators/simulators
Example:- Internally deployed Docker instances
Challenge:- CI system does not support
containers
Verdict:- Consider for future solution
Possible Solution #1
16
MathWorks Continuous Integration System
SubmitCode
Build
Test
Identify Test Requirements
Lease machine and mobile configurations with
specified requirements
Run tests
Release leased machine and mobile
configuration
Report
3/16/2016
9
17
Use external services
Idea:- Invoke external tool from CI system
Example:- Sauce Labs, BrowserStack etc.
Challenge:- Incorporating external tool into
existing CI system is non-trivial
Verdict:- A possible future direction, but more
likely as a complementary approach
Possible Solution #2
18
MathWorks Continuous Integration System
SubmitCode
Build
Test
Identify Test Requirements
Lease machine with correct
requirements
Start external service/tool
Run tests
Stop external service/tool
Release leased machine
Report
3/16/2016
10
19
Set up a mobile fixture during testing
Idea:- Provision device/emulator/simulator during
test (just-in-time)
Example:- Existing setup that allows low cost
hardware testing (Arduino, Raspberry Pi)
Challenges:- Applicable to local resources only,
but extensible to remote resources
Verdict:- Plugs well into the existing CI system
Possible Solution #3
20
MathWorks Continuous Integration System
SubmitCode
Build
Test
Identify Test Requirements
Lease machine with correct
requirements
Lease correct mobile
configuration
Run tests
Release leased machine
Release mobile configuration
Report
3/16/2016
11
21
Just-In-Time Mobile Configuration
Test Framework
22
Device/emulators as a ‘fixture’ during test
Test
Requirements
Device Lease
DeviceManager
Setup/Initialize
MobileSession
Java/MATLAB
API
Test Methods
(testpoints)
Device
Release
3/16/2016
12
23
Device/emulators as a ‘fixture’ during test
Test
Requirements
Device Lease
DeviceManager
Setup/Initialize
MobileSession
Java/MATLAB
API
Test Methods
(testpoints)
Device
Release
24
Test Requirements
Test
Requirements
Test Platform
Software
Required
Hardware
Required
3/16/2016
13
25
Test Requirements
Test
Requirements
Maci64
XCode 7
iPhone 6
iOS-9.2
26
Device/emulators as a ‘fixture’ during test
Test
Requirements
Device Lease
DeviceManager
Setup/Initialize
MobileSession
Java/MATLAB
API
Test Methods
(testpoints)
Device
Release
3/16/2016
14
27
Device Lease/Release
Current
approach
• Connected directly to the test hosts
• Leased along with the test host
• Works out of the box with CI system
Future
approach
• Maintain a separate pool of devices
• Decouple device leasing process
• Select device via Test Requirements
28
Device/emulators as a ‘fixture’ during test
Test
Requirements
Device Lease
DeviceManager
Setup/Initialize
MobileSession
Java/MATLAB
API
Test Methods
(testpoints)
Device
Release
3/16/2016
15
29
DeviceManager
DeviceManager
(Java)
Appium
• Android Emulator API level 22
• Android Emulator API level 23
• iPhone 6 – 9.2
• iPhone 6 – 9.1
• iPad Air – 9.2
• iPad Air – 9.1
• …
iPhone 6 iOS-9.2
30
MobileSession Interface
Test
Requirements
Device Lease
DeviceManager
Setup/Initialize
MobileSession
Java/MATLAB
API
Test Methods
(testpoints)
Device
Release
3/16/2016
16
31
MobileSession
• Input = app, Output = automation object
Entry point to automation API
• Consistent API for Android/iOS
Java and MATLAB APIs
• Tests don’t need to deal with device handling
Removes complexity from tests
32
Device/emulators as a ‘fixture’ during test
Test
Requirements
Device Lease
DeviceManager
Setup/Initialize
MobileSession
Java/MATLAB
API
Test Methods
(testpoints)
Device
Release
3/16/2016
17
33
Test Methods (testpoints) – Java API
@Rule
public MobileSession session = MobileSession.forApp(getAppPath());
@Test
public void clicksAnElement() throws Exception {
session.findElement(By.id("An Element")).click();
}
34
Test Methods (testpoints) – MATLAB API
methods (TestMethodSetup)
function createMobileSession(test)
test.Session = test.applyFixture(MobileSession.forApp(test.AppPath));
end
end
methods (Test)
function clicksAnElement(test)
test.Session.findElement(By.id('An Element')).click();
end
end
3/16/2016
18
35
Test Result
Test Name Result Platform Configuration
mobileLogin.m Passed Win64 Android Emulator API Level 22
mobileLogin.m Passed Maci64 iPhone 6 iOS-9.2
mobileRegister.m Failed Win64 Android Emulator API Level 22
mobileRegister.m Passed Maci64 iPhone 6 iOS-9.2
36
Utilize in-house Continuous
Integration system
Provide consistent and reusable
API
Shield test authors from
underlying tool upgrade/change
Automate provisioning of multiple
device configurations
Test
Framework
Goals for Test Framework
3/16/2016
19
37
?

More Related Content

What's hot

Tune Your ASP.NET Application Using Visual Studio 2010 Profiler
Tune Your ASP.NET Application Using Visual Studio 2010 ProfilerTune Your ASP.NET Application Using Visual Studio 2010 Profiler
Tune Your ASP.NET Application Using Visual Studio 2010 ProfilerAbhijit Jana
 
Selenium training eduxfactor
Selenium training   eduxfactorSelenium training   eduxfactor
Selenium training eduxfactor
KapilSai3
 
IGT's Intelligent Automation Framework
IGT's Intelligent Automation FrameworkIGT's Intelligent Automation Framework
IGT's Intelligent Automation Framework
greyaudrina
 
IBM AppScan Source - The SAST solution
IBM AppScan Source - The SAST solutionIBM AppScan Source - The SAST solution
IBM AppScan Source - The SAST solution
hearme limited company
 
Framework For Automation Testing Practice Sharing
Framework For Automation Testing Practice SharingFramework For Automation Testing Practice Sharing
Framework For Automation Testing Practice Sharing
KMS Technology
 
IBM Rational AppScan Technical Overview
IBM Rational AppScan Technical OverviewIBM Rational AppScan Technical Overview
IBM Rational AppScan Technical Overview
Ashish Patel
 
Selenium RC, Selenium WebDriver and HP LoadRunner
Selenium RC, Selenium WebDriver and HP LoadRunnerSelenium RC, Selenium WebDriver and HP LoadRunner
Selenium RC, Selenium WebDriver and HP LoadRunner
Murageppa-QA
 
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest
 
Smart : Comprehensive and unified framework for test automation of web and mo...
Smart : Comprehensive and unified framework for test automation of web and mo...Smart : Comprehensive and unified framework for test automation of web and mo...
Smart : Comprehensive and unified framework for test automation of web and mo...Anmol Bagga
 
Web Engineering - Web Application Testing
Web Engineering - Web Application TestingWeb Engineering - Web Application Testing
Web Engineering - Web Application Testing
Nosheen Qamar
 
Mobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.pptMobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.pptQA Programmer
 
11.7 yrs of exp in testing (manual and automation)
11.7 yrs of exp in testing (manual and automation)11.7 yrs of exp in testing (manual and automation)
11.7 yrs of exp in testing (manual and automation)Vijaya Kumar R
 

What's hot (12)

Tune Your ASP.NET Application Using Visual Studio 2010 Profiler
Tune Your ASP.NET Application Using Visual Studio 2010 ProfilerTune Your ASP.NET Application Using Visual Studio 2010 Profiler
Tune Your ASP.NET Application Using Visual Studio 2010 Profiler
 
Selenium training eduxfactor
Selenium training   eduxfactorSelenium training   eduxfactor
Selenium training eduxfactor
 
IGT's Intelligent Automation Framework
IGT's Intelligent Automation FrameworkIGT's Intelligent Automation Framework
IGT's Intelligent Automation Framework
 
IBM AppScan Source - The SAST solution
IBM AppScan Source - The SAST solutionIBM AppScan Source - The SAST solution
IBM AppScan Source - The SAST solution
 
Framework For Automation Testing Practice Sharing
Framework For Automation Testing Practice SharingFramework For Automation Testing Practice Sharing
Framework For Automation Testing Practice Sharing
 
IBM Rational AppScan Technical Overview
IBM Rational AppScan Technical OverviewIBM Rational AppScan Technical Overview
IBM Rational AppScan Technical Overview
 
Selenium RC, Selenium WebDriver and HP LoadRunner
Selenium RC, Selenium WebDriver and HP LoadRunnerSelenium RC, Selenium WebDriver and HP LoadRunner
Selenium RC, Selenium WebDriver and HP LoadRunner
 
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
 
Smart : Comprehensive and unified framework for test automation of web and mo...
Smart : Comprehensive and unified framework for test automation of web and mo...Smart : Comprehensive and unified framework for test automation of web and mo...
Smart : Comprehensive and unified framework for test automation of web and mo...
 
Web Engineering - Web Application Testing
Web Engineering - Web Application TestingWeb Engineering - Web Application Testing
Web Engineering - Web Application Testing
 
Mobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.pptMobile Testing Service Desk_Own.ppt
Mobile Testing Service Desk_Own.ppt
 
11.7 yrs of exp in testing (manual and automation)
11.7 yrs of exp in testing (manual and automation)11.7 yrs of exp in testing (manual and automation)
11.7 yrs of exp in testing (manual and automation)
 

Similar to Test Infrastructure for Native and Hybrid iOS and Android Applications

Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Intuit Inc.
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitTina Su
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitTina Su
 
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
 
IoT Integrity: A Guide to Robust Endpoint Testing
IoT Integrity: A Guide to Robust Endpoint TestingIoT Integrity: A Guide to Robust Endpoint Testing
IoT Integrity: A Guide to Robust Endpoint Testing
Josiah Renaudin
 
Neha Arora_Resume
Neha Arora_ResumeNeha Arora_Resume
Neha Arora_ResumeNeha Arora
 
Droid con slides 2013 mobileci-v1.0
Droid con slides 2013  mobileci-v1.0Droid con slides 2013  mobileci-v1.0
Droid con slides 2013 mobileci-v1.0
Anjan Dash
 
Gnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Bocha
 
Michael kammer resume_20200818
Michael kammer resume_20200818Michael kammer resume_20200818
Michael kammer resume_20200818
Michael Kammer
 
Resume_Archana_Rao
Resume_Archana_RaoResume_Archana_Rao
Resume_Archana_Raoarchana rao
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
Perfecto by Perforce
 
Resume_Gowdhaman_23102016
Resume_Gowdhaman_23102016Resume_Gowdhaman_23102016
Resume_Gowdhaman_23102016Gowdhaman U
 
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
 
Igor filatov sqa resume
Igor filatov sqa  resumeIgor filatov sqa  resume
Igor filatov sqa resume
Igor Filatov
 
Igor filatov sqa resume
Igor filatov sqa  resumeIgor filatov sqa  resume
Igor filatov sqa resume
Igor Filatov
 
David Robinson's On Line CV
David Robinson's On Line CVDavid Robinson's On Line CV
David Robinson's On Line CV
davered
 
Igor Filatov SQA Resume
Igor Filatov SQA  ResumeIgor Filatov SQA  Resume
Igor Filatov SQA ResumeIgor Filatov
 
AvneetSingh_Resume
AvneetSingh_ResumeAvneetSingh_Resume
AvneetSingh_ResumeAvneet Singh
 

Similar to Test Infrastructure for Native and Hybrid iOS and Android Applications (20)

Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
 
Speed to Market in Mobile Development
Speed to Market in Mobile DevelopmentSpeed to Market in Mobile Development
Speed to Market in Mobile Development
 
IoT Integrity: A Guide to Robust Endpoint Testing
IoT Integrity: A Guide to Robust Endpoint TestingIoT Integrity: A Guide to Robust Endpoint Testing
IoT Integrity: A Guide to Robust Endpoint Testing
 
Neha Arora_Resume
Neha Arora_ResumeNeha Arora_Resume
Neha Arora_Resume
 
Droid con slides 2013 mobileci-v1.0
Droid con slides 2013  mobileci-v1.0Droid con slides 2013  mobileci-v1.0
Droid con slides 2013 mobileci-v1.0
 
Gnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 yearsGnana Prasuna B_5.5 years
Gnana Prasuna B_5.5 years
 
Michael kammer resume_20200818
Michael kammer resume_20200818Michael kammer resume_20200818
Michael kammer resume_20200818
 
Resume_Archana_Rao
Resume_Archana_RaoResume_Archana_Rao
Resume_Archana_Rao
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
 
Resume_Gowdhaman_23102016
Resume_Gowdhaman_23102016Resume_Gowdhaman_23102016
Resume_Gowdhaman_23102016
 
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
 
Igor filatov sqa resume
Igor filatov sqa  resumeIgor filatov sqa  resume
Igor filatov sqa resume
 
Igor filatov sqa resume
Igor filatov sqa  resumeIgor filatov sqa  resume
Igor filatov sqa resume
 
David Robinson's On Line CV
David Robinson's On Line CVDavid Robinson's On Line CV
David Robinson's On Line CV
 
Igor Filatov SQA Resume
Igor Filatov SQA  ResumeIgor Filatov SQA  Resume
Igor Filatov SQA Resume
 
AvneetSingh_Resume
AvneetSingh_ResumeAvneetSingh_Resume
AvneetSingh_Resume
 
Kasi Viswanath
Kasi ViswanathKasi Viswanath
Kasi Viswanath
 
CV_Snehal_Parate
CV_Snehal_ParateCV_Snehal_Parate
CV_Snehal_Parate
 

More from Josiah Renaudin

Solve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOpsSolve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOps
Josiah Renaudin
 
End-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of Testing
Josiah Renaudin
 
Product Management: The Innovation Glue for the Lean Enterprise
Product Management: The Innovation Glue for the Lean EnterpriseProduct Management: The Innovation Glue for the Lean Enterprise
Product Management: The Innovation Glue for the Lean Enterprise
Josiah Renaudin
 
Slay the Dragons of Agile Measurement
Slay the Dragons of Agile MeasurementSlay the Dragons of Agile Measurement
Slay the Dragons of Agile Measurement
Josiah Renaudin
 
Blending Product Discovery and Product Delivery
Blending Product Discovery and Product DeliveryBlending Product Discovery and Product Delivery
Blending Product Discovery and Product Delivery
Josiah Renaudin
 
Determining Business Value in Agile Development
Determining Business Value in Agile DevelopmentDetermining Business Value in Agile Development
Determining Business Value in Agile Development
Josiah Renaudin
 
Three Things You MUST Know to Transform into an Agile Enterprise
Three Things You MUST Know to Transform into an Agile EnterpriseThree Things You MUST Know to Transform into an Agile Enterprise
Three Things You MUST Know to Transform into an Agile Enterprise
Josiah Renaudin
 
Internet of Things and the Wisdom of Mobile
Internet of Things and the Wisdom of MobileInternet of Things and the Wisdom of Mobile
Internet of Things and the Wisdom of Mobile
Josiah Renaudin
 
How to Do Kick-Ass Software Development
How to Do Kick-Ass Software DevelopmentHow to Do Kick-Ass Software Development
How to Do Kick-Ass Software Development
Josiah Renaudin
 
The Power of an Agile Mindset
The Power of an Agile MindsetThe Power of an Agile Mindset
The Power of an Agile Mindset
Josiah Renaudin
 
DevOps and the Culture of High-Performing Software Organizations
DevOps and the Culture of High-Performing Software OrganizationsDevOps and the Culture of High-Performing Software Organizations
DevOps and the Culture of High-Performing Software Organizations
Josiah Renaudin
 
Uncover Untold Stories in Your Data: A Deep Dive on Data Profiling
Uncover Untold Stories in Your Data: A Deep Dive on Data ProfilingUncover Untold Stories in Your Data: A Deep Dive on Data Profiling
Uncover Untold Stories in Your Data: A Deep Dive on Data Profiling
Josiah Renaudin
 
Build a Quality Engineering and Automation Framework
Build a Quality Engineering and Automation FrameworkBuild a Quality Engineering and Automation Framework
Build a Quality Engineering and Automation Framework
Josiah Renaudin
 
Don’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Don’t Be Another Statistic! Develop a Long-Term Test Automation StrategyDon’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Don’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Josiah Renaudin
 
Testing Lessons from the Land of Make Believe
Testing Lessons from the Land of Make BelieveTesting Lessons from the Land of Make Believe
Testing Lessons from the Land of Make Believe
Josiah Renaudin
 
Finding Success with Test Process Improvement
Finding Success with Test Process ImprovementFinding Success with Test Process Improvement
Finding Success with Test Process Improvement
Josiah Renaudin
 
Git and GitHub for Testers
Git and GitHub for TestersGit and GitHub for Testers
Git and GitHub for Testers
Josiah Renaudin
 
Stay Ahead of the Mobile and Web Testing Maturity Curve
Stay Ahead of the Mobile and Web Testing Maturity CurveStay Ahead of the Mobile and Web Testing Maturity Curve
Stay Ahead of the Mobile and Web Testing Maturity Curve
Josiah Renaudin
 
The Selenium Grid: Run Multiple Automated Tests in Parallel
The Selenium Grid: Run Multiple Automated Tests in ParallelThe Selenium Grid: Run Multiple Automated Tests in Parallel
The Selenium Grid: Run Multiple Automated Tests in Parallel
Josiah Renaudin
 
Testing at Startup Companies: What, When, Where, and How
Testing at Startup Companies: What, When, Where, and HowTesting at Startup Companies: What, When, Where, and How
Testing at Startup Companies: What, When, Where, and How
Josiah Renaudin
 

More from Josiah Renaudin (20)

Solve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOpsSolve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOps
 
End-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of TestingEnd-to-End Quality Approach: 14 Levels of Testing
End-to-End Quality Approach: 14 Levels of Testing
 
Product Management: The Innovation Glue for the Lean Enterprise
Product Management: The Innovation Glue for the Lean EnterpriseProduct Management: The Innovation Glue for the Lean Enterprise
Product Management: The Innovation Glue for the Lean Enterprise
 
Slay the Dragons of Agile Measurement
Slay the Dragons of Agile MeasurementSlay the Dragons of Agile Measurement
Slay the Dragons of Agile Measurement
 
Blending Product Discovery and Product Delivery
Blending Product Discovery and Product DeliveryBlending Product Discovery and Product Delivery
Blending Product Discovery and Product Delivery
 
Determining Business Value in Agile Development
Determining Business Value in Agile DevelopmentDetermining Business Value in Agile Development
Determining Business Value in Agile Development
 
Three Things You MUST Know to Transform into an Agile Enterprise
Three Things You MUST Know to Transform into an Agile EnterpriseThree Things You MUST Know to Transform into an Agile Enterprise
Three Things You MUST Know to Transform into an Agile Enterprise
 
Internet of Things and the Wisdom of Mobile
Internet of Things and the Wisdom of MobileInternet of Things and the Wisdom of Mobile
Internet of Things and the Wisdom of Mobile
 
How to Do Kick-Ass Software Development
How to Do Kick-Ass Software DevelopmentHow to Do Kick-Ass Software Development
How to Do Kick-Ass Software Development
 
The Power of an Agile Mindset
The Power of an Agile MindsetThe Power of an Agile Mindset
The Power of an Agile Mindset
 
DevOps and the Culture of High-Performing Software Organizations
DevOps and the Culture of High-Performing Software OrganizationsDevOps and the Culture of High-Performing Software Organizations
DevOps and the Culture of High-Performing Software Organizations
 
Uncover Untold Stories in Your Data: A Deep Dive on Data Profiling
Uncover Untold Stories in Your Data: A Deep Dive on Data ProfilingUncover Untold Stories in Your Data: A Deep Dive on Data Profiling
Uncover Untold Stories in Your Data: A Deep Dive on Data Profiling
 
Build a Quality Engineering and Automation Framework
Build a Quality Engineering and Automation FrameworkBuild a Quality Engineering and Automation Framework
Build a Quality Engineering and Automation Framework
 
Don’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Don’t Be Another Statistic! Develop a Long-Term Test Automation StrategyDon’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
Don’t Be Another Statistic! Develop a Long-Term Test Automation Strategy
 
Testing Lessons from the Land of Make Believe
Testing Lessons from the Land of Make BelieveTesting Lessons from the Land of Make Believe
Testing Lessons from the Land of Make Believe
 
Finding Success with Test Process Improvement
Finding Success with Test Process ImprovementFinding Success with Test Process Improvement
Finding Success with Test Process Improvement
 
Git and GitHub for Testers
Git and GitHub for TestersGit and GitHub for Testers
Git and GitHub for Testers
 
Stay Ahead of the Mobile and Web Testing Maturity Curve
Stay Ahead of the Mobile and Web Testing Maturity CurveStay Ahead of the Mobile and Web Testing Maturity Curve
Stay Ahead of the Mobile and Web Testing Maturity Curve
 
The Selenium Grid: Run Multiple Automated Tests in Parallel
The Selenium Grid: Run Multiple Automated Tests in ParallelThe Selenium Grid: Run Multiple Automated Tests in Parallel
The Selenium Grid: Run Multiple Automated Tests in Parallel
 
Testing at Startup Companies: What, When, Where, and How
Testing at Startup Companies: What, When, Where, and HowTesting at Startup Companies: What, When, Where, and How
Testing at Startup Companies: What, When, Where, and How
 

Recently uploaded

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 

Recently uploaded (20)

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 

Test Infrastructure for Native and Hybrid iOS and Android Applications

  • 1. T2 Track Session 4/21/2016 11:00 AM "Test Infrastructure for Native and Hybrid iOS and Android Applications" Presented by: Ankit Desai & Binod Pant MathWorks, Inc. Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 · 904-278-0524 · info@techwell.com · www.techwell.com
  • 2. Ankit Desai MathWorks, Inc. At MathWorks Ankit Desai leads the MATLAB hardware team, mobile, Internet of Things, and test and measurement quality engineering team that focuses on architecting and authoring automated tests and test tools. In his spare time, Ankit teaches IoT and robotics courses at local maker space. His hobbies include learning more about the web, mobile and tech development, videography, and photography. Binod Pant MathWorks, Inc. A test automation infrastructure engineer at MathWorks, Binod Pant’s team specializes in building automation tools for web and mobile. Binod comes with previous experience in developing web applications and database-backed applications. In his spare time, Binod likes to learn about new tools and tech developments, follow developments in physics, play music, and read books. Binod and his family reside in Boston.
  • 3. 3/16/2016 1 1© 2016 The MathWorks, Inc. Test Infrastructure for Native and Hybrid iOS and Android Applications Ankit Desai and Binod Pant MathWorks, Inc. 2 MathWorks at a Glance Earth’s topography on a Miller cylindrical projection, created with MATLAB and Mapping Toolbox. ● Headquarters: Natick, Massachusetts U.S. ● Other U.S. Locations: California; Michigan; Texas; Washington, D.C. ● Europe: France, Germany, Italy, Netherlands, Spain, Sweden, Switzerland, United Kingdom ● Asia-Pacific: Australia, China, India, Japan, Korea ● Worldwide training and consulting ● Distributors serving more than 20 countries
  • 4. 3/16/2016 2 3 Core MathWorks Products The leading environment for technical computing  The industry-standard, high-level programming language for algorithm development  Numeric computation  Parallel computing, with multicore and multiprocessor support  Data analysis and visualization  Toolboxes for signal and image processing, statistics, optimization, symbolic math, and other areas  Tools for application development and deployment  Foundation of MathWorks products 4 Core MathWorks Products The leading environment for modeling, simulating, and implementing dynamic and embedded systems  Linear, nonlinear, discrete-time, continuous-time, hybrid, and multirate systems  Foundation for Model-Based Design, including multidomain system modeling, real-time testing, automatic code generation, and verification and validation  Open architecture for integrating models from other tools  Applications in controls, signal processing, communications, physical modeling, and other system engineering areas
  • 6. 3/16/2016 4 7 iPhone, iPad, & Android Support from Simulink 8 Teams Working on Mobile Platform
  • 7. 3/16/2016 5 9 Lack of support from Continuous Integration system Lack of uniform testing API across mobile platforms Lack of access to different configurations Frequent test updates due to underlying tool change Testing Pain Points 10 Test Framework
  • 8. 3/16/2016 6 11 Utilize in-house Continuous Integration system Provide consistent and reusable API Shield test authors from underlying tool upgrade/change Automate provisioning of multiple device configurations Test Framework Goals for Test Framework 12 MathWorks Continuous Integration System SubmitCode Build Test Identify Test Requirements Lease machine with specified requirements Run tests Release leased machine Report
  • 9. 3/16/2016 7 13 Test Requirements Test Requirements Test Platform Software Required Hardware Required 14 #1 - Preconfigured VMs/containers with mobile configurations #2 - External services #3 - Mobile configuration set up during testing Possible Solutions
  • 10. 3/16/2016 8 15 Preconfigured VMs/containers with mobile configurations Idea:- Docker containers with preinstalled emulators/simulators Example:- Internally deployed Docker instances Challenge:- CI system does not support containers Verdict:- Consider for future solution Possible Solution #1 16 MathWorks Continuous Integration System SubmitCode Build Test Identify Test Requirements Lease machine and mobile configurations with specified requirements Run tests Release leased machine and mobile configuration Report
  • 11. 3/16/2016 9 17 Use external services Idea:- Invoke external tool from CI system Example:- Sauce Labs, BrowserStack etc. Challenge:- Incorporating external tool into existing CI system is non-trivial Verdict:- A possible future direction, but more likely as a complementary approach Possible Solution #2 18 MathWorks Continuous Integration System SubmitCode Build Test Identify Test Requirements Lease machine with correct requirements Start external service/tool Run tests Stop external service/tool Release leased machine Report
  • 12. 3/16/2016 10 19 Set up a mobile fixture during testing Idea:- Provision device/emulator/simulator during test (just-in-time) Example:- Existing setup that allows low cost hardware testing (Arduino, Raspberry Pi) Challenges:- Applicable to local resources only, but extensible to remote resources Verdict:- Plugs well into the existing CI system Possible Solution #3 20 MathWorks Continuous Integration System SubmitCode Build Test Identify Test Requirements Lease machine with correct requirements Lease correct mobile configuration Run tests Release leased machine Release mobile configuration Report
  • 13. 3/16/2016 11 21 Just-In-Time Mobile Configuration Test Framework 22 Device/emulators as a ‘fixture’ during test Test Requirements Device Lease DeviceManager Setup/Initialize MobileSession Java/MATLAB API Test Methods (testpoints) Device Release
  • 14. 3/16/2016 12 23 Device/emulators as a ‘fixture’ during test Test Requirements Device Lease DeviceManager Setup/Initialize MobileSession Java/MATLAB API Test Methods (testpoints) Device Release 24 Test Requirements Test Requirements Test Platform Software Required Hardware Required
  • 15. 3/16/2016 13 25 Test Requirements Test Requirements Maci64 XCode 7 iPhone 6 iOS-9.2 26 Device/emulators as a ‘fixture’ during test Test Requirements Device Lease DeviceManager Setup/Initialize MobileSession Java/MATLAB API Test Methods (testpoints) Device Release
  • 16. 3/16/2016 14 27 Device Lease/Release Current approach • Connected directly to the test hosts • Leased along with the test host • Works out of the box with CI system Future approach • Maintain a separate pool of devices • Decouple device leasing process • Select device via Test Requirements 28 Device/emulators as a ‘fixture’ during test Test Requirements Device Lease DeviceManager Setup/Initialize MobileSession Java/MATLAB API Test Methods (testpoints) Device Release
  • 17. 3/16/2016 15 29 DeviceManager DeviceManager (Java) Appium • Android Emulator API level 22 • Android Emulator API level 23 • iPhone 6 – 9.2 • iPhone 6 – 9.1 • iPad Air – 9.2 • iPad Air – 9.1 • … iPhone 6 iOS-9.2 30 MobileSession Interface Test Requirements Device Lease DeviceManager Setup/Initialize MobileSession Java/MATLAB API Test Methods (testpoints) Device Release
  • 18. 3/16/2016 16 31 MobileSession • Input = app, Output = automation object Entry point to automation API • Consistent API for Android/iOS Java and MATLAB APIs • Tests don’t need to deal with device handling Removes complexity from tests 32 Device/emulators as a ‘fixture’ during test Test Requirements Device Lease DeviceManager Setup/Initialize MobileSession Java/MATLAB API Test Methods (testpoints) Device Release
  • 19. 3/16/2016 17 33 Test Methods (testpoints) – Java API @Rule public MobileSession session = MobileSession.forApp(getAppPath()); @Test public void clicksAnElement() throws Exception { session.findElement(By.id("An Element")).click(); } 34 Test Methods (testpoints) – MATLAB API methods (TestMethodSetup) function createMobileSession(test) test.Session = test.applyFixture(MobileSession.forApp(test.AppPath)); end end methods (Test) function clicksAnElement(test) test.Session.findElement(By.id('An Element')).click(); end end
  • 20. 3/16/2016 18 35 Test Result Test Name Result Platform Configuration mobileLogin.m Passed Win64 Android Emulator API Level 22 mobileLogin.m Passed Maci64 iPhone 6 iOS-9.2 mobileRegister.m Failed Win64 Android Emulator API Level 22 mobileRegister.m Passed Maci64 iPhone 6 iOS-9.2 36 Utilize in-house Continuous Integration system Provide consistent and reusable API Shield test authors from underlying tool upgrade/change Automate provisioning of multiple device configurations Test Framework Goals for Test Framework