Choosing a CI friendly Mobile
Test Automation Framework
National Software Testing Conference 2019
The British Museum, London
Shashikant Jagtap [XCTEQ Limited ]
@Shashikant86
Agenda
• Mobile App Development Technologies
• Mobile Test Automation Frameworks
• Mobile Test Automation & CI/CD Pipelines
• How to make decision?
@Shashikant86
Mobile Platforms
• iOS ( Apple )
• Android ( Google )
• Windows ( Microsoft )
• Symbian and many more…
@Shashikant86
Popular Mobile Platforms
•
@Shashikant86
Mobile Development Technologies
• Native ( Swift & Kotlin )
• React Native ( JavaScript )
• Xamarin ( C# )
• Flutter ( Dart )
• Ionic, Cordova ……..
@Shashikant86
Native vs Cross-Platform
• Native tools and technologies are the best and preferred if budget and deadlines
are feasible
@Shashikant86
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
Native Mobile UI Test Automation
• XCUITest ( Apple )
• Expresso ( Google )
@Shashikant86
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
Cross-Platform Mobile UI Test Tools
• Appium
• Detox
@Shashikant86
Framework Specific Mobile UI Test Tools
• Flutter ( Flutter Driver )
• Xamarin ( Xamarin.UITest )
• React Native ( No Official Support for UI Testing )
@Shashikant86
Commercial Mobile UI Test Tools
• Many more Commercial or Paid Mobile Test Automation tools.
@Shashikant86
How to choose Mobile Test Framework?
• OMG! There are so many options. How do I choose the test framework for my mobile
app?
@Shashikant86
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
Tool Selection: Usual Process
• Pick the most commonly used framework and hope that I will work for your app
( e.g Appium )
@Shashikant86
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
Things to Consider
• Native App - Native Test Tools (XCUITest and Espresso), No brainer!
@Shashikant86
Things to Consider
• Cross-platform development: Cross-Platform test tool but which one?
@Shashikant86
Things to Consider
• Cross-platform development: Cross-Platform test tool but which one?
• Appium or Detox or Something else? More things to consider……
@Shashikant86
More Things to Consider
• Who will be writing UI test? QA or Developers
@Shashikant86
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
}
More Things to Consider
• Black-Box or Grey-Box
• Do want to access API and Data from your app?
@Shashikant86
More Things to Consider
• Grey-Box == Detox
• Black-Box == Appium || Flutter Driver
@Shashikant86
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
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
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
Thanks
• Question?
• Or Contact Me on Twitter @Shashikant86
@Shashikant86
NSTC2019: Choosing CI Friendly Mobile Automation Framework

NSTC2019: Choosing CI Friendly Mobile Automation Framework

  • 3.
    Choosing a CIfriendly Mobile Test Automation Framework National Software Testing Conference 2019 The British Museum, London Shashikant Jagtap [XCTEQ Limited ] @Shashikant86
  • 4.
    Agenda • Mobile AppDevelopment Technologies • Mobile Test Automation Frameworks • Mobile Test Automation & CI/CD Pipelines • How to make decision? @Shashikant86
  • 5.
    Mobile Platforms • iOS( Apple ) • Android ( Google ) • Windows ( Microsoft ) • Symbian and many more… @Shashikant86
  • 6.
  • 7.
    Mobile Development Technologies •Native ( Swift & Kotlin ) • React Native ( JavaScript ) • Xamarin ( C# ) • Flutter ( Dart ) • Ionic, Cordova …….. @Shashikant86
  • 8.
    Native vs Cross-Platform •Native tools and technologies are the best and preferred if budget and deadlines are feasible @Shashikant86
  • 9.
    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
  • 10.
    Native Mobile UITest Automation • XCUITest ( Apple ) • Expresso ( Google ) @Shashikant86
  • 11.
    Benefits of NativeUI 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
  • 12.
    Cross-Platform Mobile UITest Tools • Appium • Detox @Shashikant86
  • 13.
    Framework Specific MobileUI Test Tools • Flutter ( Flutter Driver ) • Xamarin ( Xamarin.UITest ) • React Native ( No Official Support for UI Testing ) @Shashikant86
  • 14.
    Commercial Mobile UITest Tools • Many more Commercial or Paid Mobile Test Automation tools. @Shashikant86
  • 15.
    How to chooseMobile Test Framework? • OMG! There are so many options. How do I choose the test framework for my mobile app? @Shashikant86
  • 16.
    Mobile UI TestTools + 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
  • 17.
    Tool Selection: UsualProcess • Pick the most commonly used framework and hope that I will work for your app ( e.g Appium ) @Shashikant86
  • 18.
    Tool Selection: UsualProcess • 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
  • 19.
    Things to Consider •Native App - Native Test Tools (XCUITest and Espresso), No brainer! @Shashikant86
  • 20.
    Things to Consider •Cross-platform development: Cross-Platform test tool but which one? @Shashikant86
  • 21.
    Things to Consider •Cross-platform development: Cross-Platform test tool but which one? • Appium or Detox or Something else? More things to consider…… @Shashikant86
  • 22.
    More Things toConsider • Who will be writing UI test? QA or Developers @Shashikant86
  • 23.
    More Things toConsider @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 }
  • 24.
    More Things toConsider • Black-Box or Grey-Box • Do want to access API and Data from your app? @Shashikant86
  • 25.
    More Things toConsider • Grey-Box == Detox • Black-Box == Appium || Flutter Driver @Shashikant86
  • 26.
    More Things toConsider • 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
  • 27.
    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
  • 28.
    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
  • 29.
    Thanks • Question? • OrContact Me on Twitter @Shashikant86 @Shashikant86