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.

NSTC2019: Choosing CI Friendly Mobile Automation Framework

147 views

Published on

This presentation is delivered at National Software Testing Conference, UK. This talk on selecting the CI friendly test automation framework for mobile apps.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

NSTC2019: Choosing CI Friendly Mobile Automation Framework

  1. 1. Choosing a CI friendly Mobile Test Automation Framework National Software Testing Conference 2019 The British Museum, London Shashikant Jagtap [XCTEQ Limited ] @Shashikant86
  2. 2. Agenda • Mobile App Development Technologies • Mobile Test Automation Frameworks • Mobile Test Automation & CI/CD Pipelines • How to make decision? @Shashikant86
  3. 3. Mobile Platforms • iOS ( Apple ) • Android ( Google ) • Windows ( Microsoft ) • Symbian and many more… @Shashikant86
  4. 4. Popular Mobile Platforms • @Shashikant86
  5. 5. Mobile Development Technologies • Native ( Swift & Kotlin ) • React Native ( JavaScript ) • Xamarin ( C# ) • Flutter ( Dart ) • Ionic, Cordova …….. @Shashikant86
  6. 6. Native vs Cross-Platform • Native tools and technologies are the best and preferred if budget and deadlines are feasible @Shashikant86
  7. 7. Native vs Cross-Platform • Native tools are the best but …. • Project Budget • Project Deadlines • Hiring Cost • Separate Skills • So companies make decision to use cross-platform tools @Shashikant86
  8. 8. Native Mobile UI Test Automation • XCUITest ( Apple ) • Expresso ( Google ) @Shashikant86
  9. 9. Benefits of Native UI Test tools • Fast • Test code goes into the apps code • Dev/Test Collaboration • Easy to plug into CI system • Maintained by Google or Apple @Shashikant86
  10. 10. Cross-Platform Mobile UI Test Tools • Appium • Detox @Shashikant86
  11. 11. Framework Specific Mobile UI Test Tools • Flutter ( Flutter Driver ) • Xamarin ( Xamarin.UITest ) • React Native ( No Official Support for UI Testing ) @Shashikant86
  12. 12. Commercial Mobile UI Test Tools • Many more Commercial or Paid Mobile Test Automation tools. @Shashikant86
  13. 13. How to choose Mobile Test Framework? • OMG! There are so many options. How do I choose the test framework for my mobile app? @Shashikant86
  14. 14. Mobile UI Test Tools + CI • Native Tools are easy and faster for CI Pipelines • Third-party tools required additional setup and custom scripting • Third-party tools required pre-built app for every CI build • Real Device Testing Services adds additional complexity for CI • Some CI Server/Services has out of the box Support for Mobile UI Testing @Shashikant86
  15. 15. Tool Selection: Usual Process • Pick the most commonly used framework and hope that I will work for your app ( e.g Appium ) @Shashikant86
  16. 16. Tool Selection: Usual Process • Pick the most commonly used framework and hope that will work for your app ( e.g Appium ) • Your engineer/QA have used it before so it would be easy to setup and use • That’s hot in the market, let’s pick that for our project • That’s too new, let’s not try it before someone else share their experience. • It’s open-source has too many or not too many contributors • Its build by famous company so it would be good. • Why use others? Let’s build our own. @Shashikant86
  17. 17. Things to Consider • Native App - Native Test Tools (XCUITest and Espresso), No brainer! @Shashikant86
  18. 18. Things to Consider • Cross-platform development: Cross-Platform test tool but which one? @Shashikant86
  19. 19. Things to Consider • Cross-platform development: Cross-Platform test tool but which one? • Appium or Detox or Something else? More things to consider…… @Shashikant86
  20. 20. More Things to Consider • Who will be writing UI test? QA or Developers @Shashikant86
  21. 21. More Things to Consider @Shashikant86 if QA { choose Appium || Detox } else if developer { choose platform specific tools || Flutter Drive || Xamarin.UITest } else if developer && QA { choose agreed tool based on skill } else { choose nothing }
  22. 22. More Things to Consider • Black-Box or Grey-Box • Do want to access API and Data from your app? @Shashikant86
  23. 23. More Things to Consider • Grey-Box == Detox • Black-Box == Appium || Flutter Driver @Shashikant86
  24. 24. More Things to Consider • In-Process Test or Out-of-Process • Programming language & Skills • How much you want to invest in UI Test Automation • How long your project will be? • Does your CI server/Service provides out-of -the box support to execute tests? @Shashikant86
  25. 25. After Making Decision • “There is no such as wrong decision”. You have to prove that decision taken was right! • “When it comes to choices, it’s 100% okay to choose again, and again, and again…” @Shashikant86
  26. 26. After Making Decision • Full Dedication on learning and making things work • Write a first test and configure on CI • Don’t worry about the test design pattern in the first place. • Refactor as you go! • Measure ROI and value provided by test automation. • Hire smart people with strong experience of decided tools @Shashikant86
  27. 27. Thanks • Question? • Or Contact Me on Twitter @Shashikant86 @Shashikant86

×