SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
Kwo Ding
Test Automation Consultant
SauceCon
7 June 2017
Mobile Test PyramidUI integration testing for mobile
Kwo Ding
Freelance Test Automation
Consultant
About Kwo
Over 10 years experience in software testing
Currently active in the financial industry
Specialized in implementation of test (automation) strategies
Experienced and certified Scrum Master, Product Owner and Lean Green Belt
Specialized in automation of web, mobile and API testing
Based in the Netherlands
Who Am I?
kwo@dingit.net
https://www.linkedin.com/in/kwoding
https://www.facebook.com/kwoding
@dingkwo
Mobile Testing Challenges
Browsers Simulators/Emulators Real devices
What are their strengths and how to apply?
Test Pyramid
Unit
Service
UI
Mike Cohn, Succeeding with Agile (2009)
Test Guidelines
Test as isolated as possible
Automate as much as possible
Zero tolerance on flakiness
Fast feedback (test as early as possible)
Regression = broken build
No risk = no test
NFRs are just as important as funcAonals
Mobile Test PyramidTest Guidelines
Test as isolated as possible
Automate as much as possible
Zero tolerance on flakiness
Fast feedback (test as early as possible)
Regression = broken build
No risk = no test
NFRs are just as important as funcAonals
Real devices
Simulators/Emulators
Browsers
Browsers
Mobile testing on desktop browsers
Pros and ConsUsage of desktop browser testing for mobile
Matter of milliseconds to launch a browser, also
headless possible
Fast execution
Easily set up 10+ browser instances per machine
Scalable
Ability to use browsers on different operating
systems
Cross platform
Mobile simulation in desktop browsers is still using
the desktop browser
Mobile simulation uses desktop browser version
No native keyboards, incoming calls etc.
No native integration
Incredibly fast, but it’s just not a device
Just not a device…
Focus AreasDesktop Browser Testing
Isolated browser tests performing full
functional validations
Resizing browsers and toggling user agents
Functional system testing
Responsive design
Use equivalent desktop browsers
No extensive visual checks because the
rendering is different than actual devices
Cross-browser
Overall visual layout
Demo Browser Testing
So mobile testing on desktop browsers is great, right?
Mobile Simulation in Browser vs Device
Mobile Simulation in Browser vs Device
Mobile Simulation in Browser vs Device
Mobile Simulation in Browser vs Device
Simulators/Emulators
Closer to the actual mobile experience
Pros and ConsUsage of mobile simulators/emulators
Simulators/emulators are easy to set up, just
download, install and run
Easy to set up and free
Virtualization means scalable and also running in
parallel on one machine
Scalable
Ability to test native APIs such as incoming calls and
GPS injection
Native API integration
Simulators are fast, because they only have to
simulate the software part. Emulators based on the
Intel architecture are fast.
Simulators or Intel-based emulators are fast
Manufacturer’s skins are available, but the device
behavior is still based on stock
Vanilla versions only
CPU/memory usage of machine in case of simulators.
Emulators try to simulate the hardware
No real resource usage
Connectivity with NFC, Bluetooth, network
connections
No real interoperability
Emulators based on the ARM architecture are slow,
which is actually the main architecture for Android
devices
Slow ARM-based emulators
Contrast/brightness inaccurate in light/dark
environment
Inaccurate color display in light/dark
Easy to debug simulator/emulators, already hooked
up to the machine to access logs
Debugging possibilities
Focus AreasSimulator/Emulator Testing
Click paths throughout the application
GPS injection, file attachments, incoming
calls etc.
Functional end-user flows
Native API integration
Emulators are limited to vanilla versions
Visuals (vanilla only)
Touch interactions such as swipe and tap
comes closer to the user experience of a
device than browser emulation
Touch interactions
Demo Simulator/Emulator Testing
Real Devices
The real thing…
Pros and ConsUsage of real devices
Ability to test native APIs not only with injections for
automation, but also actual NFC touch for example
Native APIs in real conditions
Some real devices are just faster than emulators due
to the simulation of hardware, especially compared to
the ARM-based emulators
Can be faster than emulators
Real devices come with a price, usually you pay per
device/cradle
Costs
A new device is usually not available on-the-fly, even
with cloud solutions
New device means procurement
Actual network conditions, battery/CPU/memory
usage, actual manufacturer’s sauce on top of the OS
Just the real thing…
iOS apps need to be signed with Development
Distribution Certificate and Provisioning Profile for
automation
Development iOS build required for automation
Focus AreasReal Device Testing
Validating usability such as actual click
areas, touch actions and voice over
CPU/memory usage, battery, network
strengths
Interruption (incoming calls, push
notifications), resource fighting (camera,
GPS), NFC, Bluetooth
Usability
Performance
Native API integration
Focus on devices which are not available as
simulators/emulators
Real OS from manufacturers
With specific manufacturer’s OS it comes
with built-in browsers which are different
than the standard and well-known
browsers such as Chrome
Visuals
Manufacturer’s sauce
Specific built-in browsers
Demo Real Device Testing
Best practicesMobile Testing
Use native gestures for usability
testing such as touch and tap
Scroll elements into view
before clicking
Use native keyboards instead of
injecting text or “sendKeys”
Webview ≠ mobile
browser rendering
Take technical click areas into
account (“fat finger click”)
Launch a “clean”
device before test
Generic Automation
Real devices: real-life conditions
Performance testing, native API integration such as
incoming calls, GPS, background apps, NFC etc.
Real devices: visual and usability testing
Visual validations and usability flows
Simulators/Emulators: functional end-user flows and visuals
Fast feedback on end-user flows with touch
interactions and visuals
Browsers: system testing and responsive design
In case of hybrid and web apps: Responsive design
and system testing
Mobile Test Pyramid
Real devices
Simulators/Emulators
Browsers
Contact
Kwo Ding
Freelance Test Automation
Consultant
kwo@dingit.net
https://www.linkedin.com/in/kwoding
https://www.facebook.com/kwoding
@dingkwo

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing
 
Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions		Live Panel: Appium Core Committers Answer Your Questions
Live Panel: Appium Core Committers Answer Your Questions
 
Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?Do You Enjoy Espresso in Android App Testing?
Do You Enjoy Espresso in Android App Testing?
 
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App Testing
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App TestingContinuous Testing Odyssey: Learn Best Practices for End-to-End Web App Testing
Continuous Testing Odyssey: Learn Best Practices for End-to-End Web App Testing
 
Appium tutorial| Appium Training
Appium tutorial| Appium Training Appium tutorial| Appium Training
Appium tutorial| Appium Training
 
Continuous testing on emulators using the espresso test automation framework
Continuous testing on emulators using the espresso test automation frameworkContinuous testing on emulators using the espresso test automation framework
Continuous testing on emulators using the espresso test automation framework
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testing
 
Selenium training
Selenium trainingSelenium training
Selenium training
 
Mobile Testing
Mobile TestingMobile Testing
Mobile Testing
 
Introduction To Mobile-Automation
Introduction To Mobile-AutomationIntroduction To Mobile-Automation
Introduction To Mobile-Automation
 
Mobile application testing
Mobile application testingMobile application testing
Mobile application testing
 
Mobile performance metrics and performance monitoring meetup 2017 05 10
Mobile performance metrics and performance monitoring meetup 2017 05 10Mobile performance metrics and performance monitoring meetup 2017 05 10
Mobile performance metrics and performance monitoring meetup 2017 05 10
 
Testing on Real Devices vs. Emulators
Testing on Real Devices vs. EmulatorsTesting on Real Devices vs. Emulators
Testing on Real Devices vs. Emulators
 
10 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.510 things you didnt know about appium + whats new in appium 1.5
10 things you didnt know about appium + whats new in appium 1.5
 
App Days 2016 Munich - Mobile Applications testing by Leaware
App Days 2016 Munich - Mobile Applications testing by LeawareApp Days 2016 Munich - Mobile Applications testing by Leaware
App Days 2016 Munich - Mobile Applications testing by Leaware
 
SauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of ConcurrencySauceCon 2017: Testing @ the Speed of Concurrency
SauceCon 2017: Testing @ the Speed of Concurrency
 
Mobile First: How To Approach Mobile Testing!
Mobile First: How To Approach Mobile Testing!Mobile First: How To Approach Mobile Testing!
Mobile First: How To Approach Mobile Testing!
 
Everything You Need To Know about Appium and Selenium
Everything You Need To Know about Appium and SeleniumEverything You Need To Know about Appium and Selenium
Everything You Need To Know about Appium and Selenium
 
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
 
Parallel testing with appium
Parallel testing with appiumParallel testing with appium
Parallel testing with appium
 

Similar a SauceCon 2017: Mobile Test Pyramid

Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
Tina Su
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
Tina Su
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
Sauce Labs
 

Similar a SauceCon 2017: Mobile Test Pyramid (20)

Appium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | EdurekaAppium Interview Questions and Answers | Edureka
Appium Interview Questions and Answers | Edureka
 
Mobitop
MobitopMobitop
Mobitop
 
Mobitop
MobitopMobitop
Mobitop
 
Mobitop
MobitopMobitop
Mobitop
 
Mobitop
MobitopMobitop
Mobitop
 
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...
 
Handalian shelkey mobile-presentation_upa_2010
Handalian shelkey mobile-presentation_upa_2010Handalian shelkey mobile-presentation_upa_2010
Handalian shelkey mobile-presentation_upa_2010
 
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
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
 
What Are Virtual Devices And How To Use Them For Testing.pdf
What Are Virtual Devices And How To Use Them For Testing.pdfWhat Are Virtual Devices And How To Use Them For Testing.pdf
What Are Virtual Devices And How To Use Them For Testing.pdf
 
Discover the power of QA automation testing
Discover the power of QA automation testingDiscover the power of QA automation testing
Discover the power of QA automation testing
 
SynapseIndia mobile apps
SynapseIndia mobile appsSynapseIndia mobile apps
SynapseIndia mobile apps
 
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
 
Chapter 4 - Mobile Application Platforms, Tools and Environment
Chapter 4 - Mobile Application Platforms, Tools and EnvironmentChapter 4 - Mobile Application Platforms, Tools and Environment
Chapter 4 - Mobile Application Platforms, Tools and Environment
 
Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)Using Selenium to Test Native Apps (Wait, you can do that?)
Using Selenium to Test Native Apps (Wait, you can do that?)
 
The Best Automated Testing Tools in 2020
The Best Automated Testing Tools in 2020The Best Automated Testing Tools in 2020
The Best Automated Testing Tools in 2020
 
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
 
How do I test these new mobile applications, and how does CA Application Test...
How do I test these new mobile applications, and how does CA Application Test...How do I test these new mobile applications, and how does CA Application Test...
How do I test these new mobile applications, and how does CA Application Test...
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)
 

Más de Sauce Labs

Your Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleYour Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at Scale
Sauce Labs
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
Sauce Labs
 
Quality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingQuality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI Testing
Sauce Labs
 
Creating Digital Confidence with Test Automation
Creating Digital Confidence with Test AutomationCreating Digital Confidence with Test Automation
Creating Digital Confidence with Test Automation
Sauce Labs
 

Más de Sauce Labs (20)

Simplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless ToolsSimplify Salesforce Testing with AI-Driven Codeless Tools
Simplify Salesforce Testing with AI-Driven Codeless Tools
 
Testing on Mobile Devices with Location Services
Testing on Mobile Devices with Location ServicesTesting on Mobile Devices with Location Services
Testing on Mobile Devices with Location Services
 
Your Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at ScaleYour Framework for Success: introduction to JavaScript Testing at Scale
Your Framework for Success: introduction to JavaScript Testing at Scale
 
Automating Hybrid Applications with Appium
Automating Hybrid Applications with AppiumAutomating Hybrid Applications with Appium
Automating Hybrid Applications with Appium
 
Quality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI TestingQuality at Speed: More API Testing, Less UI Testing
Quality at Speed: More API Testing, Less UI Testing
 
Creating Digital Confidence with Test Automation
Creating Digital Confidence with Test AutomationCreating Digital Confidence with Test Automation
Creating Digital Confidence with Test Automation
 
Just Enough (Automated) Testing
Just Enough (Automated) TestingJust Enough (Automated) Testing
Just Enough (Automated) Testing
 
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium TestsUsing Axe to Add Accessibility Checks to Your Existing Selenium Tests
Using Axe to Add Accessibility Checks to Your Existing Selenium Tests
 
How Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product ObsessionHow Open Source Helps to Bring Back Product Obsession
How Open Source Helps to Bring Back Product Obsession
 
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon StewartWebinar: A Sneak Peek at Selenium 4 with Simon Stewart
Webinar: A Sneak Peek at Selenium 4 with Simon Stewart
 
[Deu] Test Automatisierung Mit Web Driver.io
[Deu] Test Automatisierung Mit Web Driver.io[Deu] Test Automatisierung Mit Web Driver.io
[Deu] Test Automatisierung Mit Web Driver.io
 
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
Accelerating Innovation: Leveraging Open Source to Optimize Your Shift-Left I...
 
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. ForresterAccelerating Your Digital Agenda with Continuous Testing ft. Forrester
Accelerating Your Digital Agenda with Continuous Testing ft. Forrester
 
How to Measure Success in Continuous Testing
How to Measure Success in Continuous TestingHow to Measure Success in Continuous Testing
How to Measure Success in Continuous Testing
 
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Sauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software TestingSauce Labs Webinar: Rising Importance of Software Testing
Sauce Labs Webinar: Rising Importance of Software Testing
 
BDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu PetetiBDD With Selenide by Hima Bindu Peteti
BDD With Selenide by Hima Bindu Peteti
 
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
Closer To the Metal - Why and How We Use XCTest and Espresso by Mario Negro P...
 
Continuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa BenuaContinuous Delivery for "Mature" Codebases by Melisa Benua
Continuous Delivery for "Mature" Codebases by Melisa Benua
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 

SauceCon 2017: Mobile Test Pyramid

  • 1. Kwo Ding Test Automation Consultant SauceCon 7 June 2017 Mobile Test PyramidUI integration testing for mobile
  • 2. Kwo Ding Freelance Test Automation Consultant About Kwo Over 10 years experience in software testing Currently active in the financial industry Specialized in implementation of test (automation) strategies Experienced and certified Scrum Master, Product Owner and Lean Green Belt Specialized in automation of web, mobile and API testing Based in the Netherlands Who Am I? kwo@dingit.net https://www.linkedin.com/in/kwoding https://www.facebook.com/kwoding @dingkwo
  • 4. Browsers Simulators/Emulators Real devices What are their strengths and how to apply?
  • 5. Test Pyramid Unit Service UI Mike Cohn, Succeeding with Agile (2009)
  • 6. Test Guidelines Test as isolated as possible Automate as much as possible Zero tolerance on flakiness Fast feedback (test as early as possible) Regression = broken build No risk = no test NFRs are just as important as funcAonals
  • 7. Mobile Test PyramidTest Guidelines Test as isolated as possible Automate as much as possible Zero tolerance on flakiness Fast feedback (test as early as possible) Regression = broken build No risk = no test NFRs are just as important as funcAonals Real devices Simulators/Emulators Browsers
  • 8. Browsers Mobile testing on desktop browsers
  • 9. Pros and ConsUsage of desktop browser testing for mobile Matter of milliseconds to launch a browser, also headless possible Fast execution Easily set up 10+ browser instances per machine Scalable Ability to use browsers on different operating systems Cross platform Mobile simulation in desktop browsers is still using the desktop browser Mobile simulation uses desktop browser version No native keyboards, incoming calls etc. No native integration Incredibly fast, but it’s just not a device Just not a device…
  • 10. Focus AreasDesktop Browser Testing Isolated browser tests performing full functional validations Resizing browsers and toggling user agents Functional system testing Responsive design Use equivalent desktop browsers No extensive visual checks because the rendering is different than actual devices Cross-browser Overall visual layout
  • 12.
  • 13.
  • 14. So mobile testing on desktop browsers is great, right?
  • 15. Mobile Simulation in Browser vs Device
  • 16. Mobile Simulation in Browser vs Device
  • 17. Mobile Simulation in Browser vs Device
  • 18. Mobile Simulation in Browser vs Device
  • 19. Simulators/Emulators Closer to the actual mobile experience
  • 20. Pros and ConsUsage of mobile simulators/emulators Simulators/emulators are easy to set up, just download, install and run Easy to set up and free Virtualization means scalable and also running in parallel on one machine Scalable Ability to test native APIs such as incoming calls and GPS injection Native API integration Simulators are fast, because they only have to simulate the software part. Emulators based on the Intel architecture are fast. Simulators or Intel-based emulators are fast Manufacturer’s skins are available, but the device behavior is still based on stock Vanilla versions only CPU/memory usage of machine in case of simulators. Emulators try to simulate the hardware No real resource usage Connectivity with NFC, Bluetooth, network connections No real interoperability Emulators based on the ARM architecture are slow, which is actually the main architecture for Android devices Slow ARM-based emulators Contrast/brightness inaccurate in light/dark environment Inaccurate color display in light/dark Easy to debug simulator/emulators, already hooked up to the machine to access logs Debugging possibilities
  • 21. Focus AreasSimulator/Emulator Testing Click paths throughout the application GPS injection, file attachments, incoming calls etc. Functional end-user flows Native API integration Emulators are limited to vanilla versions Visuals (vanilla only) Touch interactions such as swipe and tap comes closer to the user experience of a device than browser emulation Touch interactions
  • 23.
  • 25. Pros and ConsUsage of real devices Ability to test native APIs not only with injections for automation, but also actual NFC touch for example Native APIs in real conditions Some real devices are just faster than emulators due to the simulation of hardware, especially compared to the ARM-based emulators Can be faster than emulators Real devices come with a price, usually you pay per device/cradle Costs A new device is usually not available on-the-fly, even with cloud solutions New device means procurement Actual network conditions, battery/CPU/memory usage, actual manufacturer’s sauce on top of the OS Just the real thing… iOS apps need to be signed with Development Distribution Certificate and Provisioning Profile for automation Development iOS build required for automation
  • 26. Focus AreasReal Device Testing Validating usability such as actual click areas, touch actions and voice over CPU/memory usage, battery, network strengths Interruption (incoming calls, push notifications), resource fighting (camera, GPS), NFC, Bluetooth Usability Performance Native API integration Focus on devices which are not available as simulators/emulators Real OS from manufacturers With specific manufacturer’s OS it comes with built-in browsers which are different than the standard and well-known browsers such as Chrome Visuals Manufacturer’s sauce Specific built-in browsers
  • 27. Demo Real Device Testing
  • 28.
  • 29.
  • 30.
  • 31. Best practicesMobile Testing Use native gestures for usability testing such as touch and tap Scroll elements into view before clicking Use native keyboards instead of injecting text or “sendKeys” Webview ≠ mobile browser rendering Take technical click areas into account (“fat finger click”) Launch a “clean” device before test Generic Automation
  • 32. Real devices: real-life conditions Performance testing, native API integration such as incoming calls, GPS, background apps, NFC etc. Real devices: visual and usability testing Visual validations and usability flows Simulators/Emulators: functional end-user flows and visuals Fast feedback on end-user flows with touch interactions and visuals Browsers: system testing and responsive design In case of hybrid and web apps: Responsive design and system testing Mobile Test Pyramid Real devices Simulators/Emulators Browsers
  • 33. Contact Kwo Ding Freelance Test Automation Consultant kwo@dingit.net https://www.linkedin.com/in/kwoding https://www.facebook.com/kwoding @dingkwo