Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Managing Continuous Delivery of Mobile Apps - for the Enterprise

3,632 views

Published on

Enabling CI / CD in your mobile development process means understanding the different solutions, overcoming unique challenges and ensuring the right ownership of the processes. In this webinar, you will learn the steps required to enable Continuous Delivery of Mobile Application Platforms.

Published in: Mobile
  • Hey guys! Who wants to chat with me? More photos with me here 👉 http://www.bit.ly/katekoxx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Managing Continuous Delivery of Mobile Apps - for the Enterprise

  1. 1. ©2015 InfoStretch Corporation June, 2015 US - UK - India Managing Continuous Delivery of Mobile Apps - for the Enterprise Harnessing the power of ultimate Mobile automation using - CI and Cloud
  2. 2.  Apps Tested  Employees 100+  Apps developed and deployed 3000+ Global Footprint Locations Corporate HQ: Silicon Valley Offices: Conshohocken (PA), Ahmedabad (India), Pune (India), London (UK) 700+ 250K  Active Mobile Customer Engagements 60+ About Infostretch  Real devices in mobile labsAbout us Founded in 2004 in Santa Clara, CA, InfoStretch is a leading provider of next- generation mobile application lifecycle services ranging from design and development to testing and sustenance. 2©2015 InfoStretch Corporation.
  3. 3. © Sauce Labs, Inc. The Sauce Labs Platform • Test web + mobile apps across more than 500+ browser/OS/platforms • Enterprise scalability + Security + industry standard SLA • Capture screencasts, logs and test metadata
  4. 4. Agenda  What is CI?  Why CI and Value to Business  CI Implementation and Architecture  Mobile Cloud Solutions & CI  Case Study 4©2015 InfoStretch Corporation.
  5. 5. What is CI?  Continuous Integration is a software practice in which isolated code changes are immediately tested and reported on as soon as they are added to the code base.  Key Principles of CI include:  Implement Source Control system  Automate the Build Process  Frequent Commits, Code Consolidation, Fast builds  Automated Deployment  Self testing the builds: Unit tests, Code Quality, Static Analysis  Testing in a Clone to Production environment  Automate User Acceptance Test  Dashboards for Reporting 5©2015 InfoStretch Corporation.
  6. 6. What is CI?  Continuous Integration is a software practice in which isolated code changes are immediately tested and reported on as soon as they are added to the code base.  Key Principles of CI include:  Implement Source Control system  Automate the Build Process  Frequent Commits, Code Consolidation, Fast builds  Automated Deployment  Self testing the builds: Unit tests, Code Quality, Static Analysis  Testing in a Clone to Production environment  Automate User Acceptance Test  Dashboards for Reporting 6©2015 InfoStretch Corporation.
  7. 7. Source Control 7©2015 InfoStretch Corporation.  Git  Decentralized, and aims to be fast, flexible, and robust  Subversion  Open source version control system inspired by CVS  CVS  Built on RCS, with emphasis put on security and source code correctness  Stash  Create and manage repositories, integrate with JIRA for end to end traceability, collaborate on code and instantly scale with high performance.
  8. 8. What is CI?  Continuous Integration is a software practice in which isolated code changes are immediately tested and reported on as soon as they are added to the code base.  Key Principles of CI include:  Implement Source Control system  Automate the Build Process  Frequent Commits, Code Consolidation, Fast builds  Automated Deployment  Self testing the builds: Unit tests, Code Quality, Static Analysis  Testing in a Clone to Production environment  Automate User Acceptance Test  Dashboards for Reporting 8©2015 InfoStretch Corporation.
  9. 9. Build Automation  Shell scripts  Tools: Maven, Gradle, Ant, Spring IO, ChaiOne, Xcodebuild 9©2015 InfoStretch Corporation.
  10. 10. CI Build Tool 10©2015 InfoStretch Corporation.  Jenkins / (fka Hudson)  Open source continuous integration tool written in Java  Circle CI  CircleCI supports every component of a modern application, including mobile apps (iOS and Android)  Bamboo  Bamboo is a continuous integration server from Atlassian  TeamCity  Continuous integration and build management system
  11. 11. What is CI?  Continuous Integration is a software practice in which isolated code changes are immediately tested and reported on as soon as they are added to the code base.  Key Principles of CI include:  Implement Source Control system  Automate the Build Process  Frequent Commits, Code Consolidation, Fast builds  Automated Deployment  Self testing the builds: Unit tests, Code Quality, Static Analysis  Testing in a Clone to Production environment  Automate User Acceptance Test  Dashboards for Reporting 11©2015 InfoStretch Corporation.
  12. 12. Automate Deployment  Deploy Mobile apps to Physical devices/ emulators using deployment tools  Tools: Testflight, Hockey App, IBM Urban Code, etc 12©2015 InfoStretch Corporation.
  13. 13. What is CI?  Continuous Integration is a software practice in which isolated code changes are immediately tested and reported on as soon as they are added to the code base.  Key Principles of CI include:  Implement Source Control system  Automate the Build Process  Frequent Commits, Code Consolidation, Fast builds  Automated Deployment  Self testing the builds: Unit tests, Code Quality, Static Analysis  Testing in a Clone to Production environment  Automate User Acceptance Test  Dashboards for Reporting 13©2015 InfoStretch Corporation.
  14. 14. Self Testing Builds Code quality tools like: SonarQube and Static Analysis tools like: Fortify 14©2015 InfoStretch Corporation.  Junit  A popular framework for writing unit tests in Java/J2EE environment  TestNG  Similar to jUnit, but provides dependencies and expanded annotations  Rspec  Behaviour-driven development framework
  15. 15. What is CI?  Continuous Integration is a software practice in which isolated code changes are immediately tested and reported on as soon as they are added to the code base.  Key Principles of CI include:  Implement Source Control system  Automate the Build Process  Frequent Commits, Code Consolidation, Fast builds  Automated Deployment  Self testing the builds: Unit tests, Code Quality, Static Analysis  Testing in a Clone to Production environment  Automate User Acceptance Test  Dashboards for Reporting 15©2015 InfoStretch Corporation.
  16. 16. Testing in Clone to Production  Load/Performance testing using tools like Soasta 16©2015 InfoStretch Corporation. • Environment Automation Tools allow teams to define environment, system, and application configurations and parameters such that downstream environments can be automatically provisions and any conflicts between expected application parameters can be identified • Common Tools: Puppet, Chef, Ansible  Test Environment Automation
  17. 17. Why CI? 6) You do not have automated builds or automated tests in place. 17 1) Mobile apps live and die by their ratings in an App Store 2) You are "going commando" without source code management for your mobile app deployment process. No tracking. No rollback. 3) You are deploying manually between environments 5) You are stuck in a "hot mess" of hotfixes 4) You are editing configurations manually, doing it on staging or production environments ©2015 InfoStretch Corporation.
  18. 18. Agile Testing Success Mantras!  One team approach  Co-locate, Empower, 2 Pizza Teams  Advanced – Read Spotify Model of Squad/Tribes/Guilds (https://dl.dropboxusercontent.com/u/1018963/Articles/SpotifyScaling.pdf)  QA Engage early  Quality is every ones responsibility  QA Ops Focus is important  CI, Tools, Infrastructure (lab), Reporting, Dependency Management  Invest in Scale – goal to run deploy+automation in under 60 m  Design and implement for Testability  Focus on Automation – automate every thing – smoke->regression  CI is the life saver
  19. 19. Enterprise Shift Left Objectives •Write Automation Early •Find Defects Early/Lower defects in Prod •Run Automation in Dev Environments •Engage every one (at least QA in Automation) •Keep Test cases in sync with user stories Shift Quality Left •Higher Confidence in builds •Increase Engineering Velocity •Increase Scale – Make automation massively parallel (check-in to release in 60 minutes) Make build and deployment more reliable •Reduce regression cost and time •Automate Ops – CI, Deployments, Test Data and Environment Buildup •Automate root cause analysis •Isolate Layers (Mock Objects and Virtualization) Automate the Quality Process 19
  20. 20. 20
  21. 21. Why BDD? • Faster cycle time – Shift-Left imperative • Easy to understand tests and test results • Closer QE/Dev/Product collaboration to help us get the tests right early • Features and Scenarios serve as easy to access, verifiable, living documentation of an application 21
  22. 22. Value to Business 22©2015 InfoStretch Corporation. Key Benefits of Continuous Integration Early defect detection Measurable health of software Brings quality assurance Reduce overheads Better project visibility Reduce assumptions
  23. 23. CI/CD Process 23©2015 InfoStretch Corporation. DELIVERY TEAM VERSION CONTROL BUILD & UNIT TESTS AUTOMATED ACCEPTANCE TESTS USER ACCEPTANCE TESTS RELEASE check in trigger feedback check in trigger feedback trigger feedback check in trigger trigger approval approvalfeedback feedback START
  24. 24. CI Jumpstart with InfoStretch 24 REVIEW 1 to 2 weeks Understand the expectation from the different stakeholders Understand branching strategy Qualification of the builds product and maintenance release cycle Understand dependency managements Understand the release engineering policies DEFINE 4 to 6 weeks Development & release build environments Multi-site development coordination – broken builds resolutions Release engineering and CI flow design Define branching and merging strategy Define CI test automation execution DEPLOY 2 to 4 weeks CI Tools selection Design trunk, branching and merging strategy to support product development Design step by step CI flow and scripts needed Automate software builds and packaging deployment scripts Validate starting, executing and report of basic build test verification 1| ©2015 InfoStretch Corporation. 2| 3|
  25. 25. CI/CD Architecture Using Mobile Cloud 25©2015 InfoStretch Corporation. GitHub/SVN /TFS Jenkins/H udson/Tea mCity/Circ leCI Developers Data Center CI Machines iOS/Android devices Dashboard Functional, Non-Functional, Regression, Smoke Tests… iOS/Android simulators
  26. 26. CI tools & Mobile Cloud Integration 26©2015 InfoStretch Corporation.  Benefits of harnessing - CI and Cloud:  Flexible and Mobile-ready Plugins  Unlimited Scalability and Device Elasticity  Leverage Existing Processes and Assets Within An Organization  Enhance Mobile CI Workflow in Real User Conditions  On-demand Availability  Faster Issue Resolution
  27. 27. Mobile QA Solutions ON-DEMAND CLOUD AUTOMATION SUPPORT INTEGRATION WITH SUPPORT SYSTEMS What does it offer?
  28. 28. Case Study: CI implementation for Leading Healthcare Provider Customer Challenges  Slow automation execution Time- 22 mins per test case  Sequential module wise execution on one device @ a time  Already automated script not utilizing in regression cycles  Lots of test data dependencies and require regular maintenance  No framework available for Responsive web design for mobile InfoStretch Approach  Recommended best practices for automating native & web app using device cloud  Collaborated with Scrum Team and understand web- service/JSON role in test data generation/creation  Setup continuous integration for nightly execution for utilizing cloud devices on free time  Proposed HP ALM integration along with Jenkins for complete automation life cycle Engagement Benefits  Optimize automation execution to 8-10 mins per test cases [Reduce 50%]  Enabling parallel execution on Selenium Grid  Utilizing automation script in regular code drop/release cycle [2-3 times per week- average 1200 test cases executed in each cycle]  Develop framework utilizing JSON response instead of test data in xls sheet on run time. [Almost 0% test data dependency and maintenance]  Created new framework which supports common code for execution on desktop and mobile browsers on emulators/real devices for Response Web design
  29. 29. 29©2015 InfoStretch Corporation. Sauce Labs Device Cloud
  30. 30. ©2015 InfoStretch Corporation. All rights reserved. 30 Q&A info@infostretch.com www.infostretch.com

×