Testing & Release Strategy for
Native Apps
@BagmarAnand
Anand Bagmar
Software Quality Evangelist, Essence Of Testing
@BagmarAnand
https://dragonflytraining.files.wordpress.com/2013/10/man-with-question-01.png
Testing & Release Strategy for
Native Apps
@BagmarAnand
Anand Bagmar
Software Quality Evangelist, Essence Of Testing
Quality
About Me
Anand Bagmar
EssenceOfTesting.com
@BagmarAnand
Web Vs Native Apps
@BagmarAnand
https://www.flickr.com/photos/brendanadkins/505630681/
Similarities
in
Web & Native Apps Testing
@BagmarAnand
Differences
in
Web & Native Apps Testing
@BagmarAnand
Release approach
for
Web Apps
@BagmarAnand
@BagmarAnand
Similarities
in
Web & Native Apps Releases
Differences
in
Web & Native Apps Releases
@BagmarAnand
@BagmarAnand
CI / CD
for
Web Apps & Native Apps
@BagmarAnand
Case Study – B2C
@BagmarAnand
How would you
Test & Release
such a product?
• Big user-base
• Millions of users, across geographies
• 13K+ unique device / OS combinations
@BagmarAnand
Reality
• Functionality has to work!
• Releases
• Frequent
• Black-out dates
• Analytics – as critical as some core features
• Partner Integrations & Payments
@BagmarAnand
Non-Negotiable Release Criteria
• Slow / inefficient / incomplete Testing
• Poor quality code-base, No visibility / control on impact of
changes
• Limited Test Automation
• Business Metrics
• Analytics – as critical as some core features
• Releases / issues found during black-out dates
@BagmarAnand
Tipping points
Quality & Release Strategy
@BagmarAnand
Quality Strategy
@BagmarAnand
• Setup relevant Agile / XP practices
• Established and enforced Definition-of-Done
• No ad-hoc implementation (by directly talking to devs)!!
@BagmarAnand
Established structured WoW
• Build Quality-in by Testing early
• Feature kick-off
• à Business Requirements
• Story kick-off
• à User impact
• Dev-Box testing
• à Implement what was expected
• Thorough Story Testing & Exploratory Testing
• à Test was was implemented
• Product Owner sign-off per story & feature
• à Involve everyone, Quality is Team Responsibility
@BagmarAnand
Established structured WoW
• Automate as much as you can
• Unit Tests
• Integration Tests
• Functional Tests (e2e) à focused on user-journeys
• Analytics Tests
@BagmarAnand
Automation is the KEY!
Value of Automation
Run the tests on every change
@BagmarAnand
@BagmarAnand
Run E2E Tests
App Build
API
Deployment
e2e
CI à CD
Solution!
@BagmarAnand
MAD-LAB – Mobile Automation Devices LAB
MAD-LAB
@BagmarAnand
• In-house device lab (> 30 devices – Android, iPhones, Tablets)
• Cucumber-JVM / Appium / Cucumber-Reporting
• Distributed Test Execution
• Maximize device utilization
• Manage devices / Appium
• Analytics Validation
• Performance benchmarking
• Easy to scale (Mac-Mini, powered USB hubs, durable USB cables)
@BagmarAnand
Key Features of MAD-LAB
gradle / groovy
Manage Devices
Wifi Management
Optimize Device
Utilization
Appium Server
Management
Test Specifications
Business Rules (cucumber-jvm)
Business Flows
Implement Domain
functionality
(actions, verifications, rules)
Resources
Entities / Models
Pages / Screens
Trigger e2e Tests in
Jenkins Server
- Jenkins File
- Node Management
Archive artefacts
- logs, screenshots, videos, logcat, Appium logs, etc
- Cucumber reports
‘x’ Jenkins Agents on ‘y’ Mac Minis
Helpers / Utilities
(Android / iOS) Driver utilities
Loggers
File utilities
Custom Reporter
Screenshot utilities
ADB utilities Video capture
Analytics
GPU Profiling
Command Executor
Log files from Devices
Enrich Test Execution
Report
Manage Failing Tests
Upload to TTA
Only Automation is
NOT SUFFICIENT
@BagmarAnand
• Intelligent / Optimized Non-Automated Testing
• Exploratory Testing
• Sanity Testing
• On-Field
• Business
• Pre-release sanity check-list (value / risk / not-automated, …)
• Functionality
• Payments
• Analytics
@BagmarAnand
Functional Testing Approach
• On-Field Sanity Testing
• Staged Releases
• Sentiment Analysis
• Review comments (PlayStore / App Store)
• Social Media (Twitter, Instagram, facebook, …)
• Extensive monitoring of staged releases
• Analytics
• Crashes
• Support Tickets
@BagmarAnand
Release Approach
Thank you!
Anand Bagmar
EssenceOfTesting.com
@BagmarAnand

Quality & Release Strategy for Native Android & iOS Apps

  • 1.
    Testing & ReleaseStrategy for Native Apps @BagmarAnand Anand Bagmar Software Quality Evangelist, Essence Of Testing
  • 2.
  • 3.
    Testing & ReleaseStrategy for Native Apps @BagmarAnand Anand Bagmar Software Quality Evangelist, Essence Of Testing Quality
  • 4.
  • 5.
    Web Vs NativeApps @BagmarAnand https://www.flickr.com/photos/brendanadkins/505630681/
  • 6.
    Similarities in Web & NativeApps Testing @BagmarAnand
  • 7.
    Differences in Web & NativeApps Testing @BagmarAnand
  • 8.
  • 9.
  • 10.
    Differences in Web & NativeApps Releases @BagmarAnand
  • 11.
    @BagmarAnand CI / CD for WebApps & Native Apps
  • 12.
  • 13.
    @BagmarAnand How would you Test& Release such a product?
  • 14.
    • Big user-base •Millions of users, across geographies • 13K+ unique device / OS combinations @BagmarAnand Reality
  • 15.
    • Functionality hasto work! • Releases • Frequent • Black-out dates • Analytics – as critical as some core features • Partner Integrations & Payments @BagmarAnand Non-Negotiable Release Criteria
  • 16.
    • Slow /inefficient / incomplete Testing • Poor quality code-base, No visibility / control on impact of changes • Limited Test Automation • Business Metrics • Analytics – as critical as some core features • Releases / issues found during black-out dates @BagmarAnand Tipping points
  • 17.
    Quality & ReleaseStrategy @BagmarAnand
  • 18.
  • 19.
    • Setup relevantAgile / XP practices • Established and enforced Definition-of-Done • No ad-hoc implementation (by directly talking to devs)!! @BagmarAnand Established structured WoW
  • 20.
    • Build Quality-inby Testing early • Feature kick-off • à Business Requirements • Story kick-off • à User impact • Dev-Box testing • à Implement what was expected • Thorough Story Testing & Exploratory Testing • à Test was was implemented • Product Owner sign-off per story & feature • à Involve everyone, Quality is Team Responsibility @BagmarAnand Established structured WoW
  • 21.
    • Automate asmuch as you can • Unit Tests • Integration Tests • Functional Tests (e2e) à focused on user-journeys • Analytics Tests @BagmarAnand Automation is the KEY!
  • 22.
    Value of Automation Runthe tests on every change @BagmarAnand
  • 23.
    @BagmarAnand Run E2E Tests AppBuild API Deployment e2e CI à CD
  • 24.
  • 25.
    MAD-LAB – MobileAutomation Devices LAB
  • 26.
  • 27.
    • In-house devicelab (> 30 devices – Android, iPhones, Tablets) • Cucumber-JVM / Appium / Cucumber-Reporting • Distributed Test Execution • Maximize device utilization • Manage devices / Appium • Analytics Validation • Performance benchmarking • Easy to scale (Mac-Mini, powered USB hubs, durable USB cables) @BagmarAnand Key Features of MAD-LAB
  • 28.
    gradle / groovy ManageDevices Wifi Management Optimize Device Utilization Appium Server Management Test Specifications Business Rules (cucumber-jvm) Business Flows Implement Domain functionality (actions, verifications, rules) Resources Entities / Models Pages / Screens Trigger e2e Tests in Jenkins Server - Jenkins File - Node Management Archive artefacts - logs, screenshots, videos, logcat, Appium logs, etc - Cucumber reports ‘x’ Jenkins Agents on ‘y’ Mac Minis Helpers / Utilities (Android / iOS) Driver utilities Loggers File utilities Custom Reporter Screenshot utilities ADB utilities Video capture Analytics GPU Profiling Command Executor Log files from Devices Enrich Test Execution Report Manage Failing Tests Upload to TTA
  • 29.
    Only Automation is NOTSUFFICIENT @BagmarAnand
  • 30.
    • Intelligent /Optimized Non-Automated Testing • Exploratory Testing • Sanity Testing • On-Field • Business • Pre-release sanity check-list (value / risk / not-automated, …) • Functionality • Payments • Analytics @BagmarAnand Functional Testing Approach
  • 31.
    • On-Field SanityTesting • Staged Releases • Sentiment Analysis • Review comments (PlayStore / App Store) • Social Media (Twitter, Instagram, facebook, …) • Extensive monitoring of staged releases • Analytics • Crashes • Support Tickets @BagmarAnand Release Approach
  • 32.