Welcome to another Novoda ‘2-minute Q&A’. This series gives you insights into some of the challenging scenario's and ideas that we deal with day to day in the world of Novoda's Engineering, Product and agile Software Crafting.

Today we have JT our Head of Quality Assurance, having managed to peel him away from his testing responsibilities for two minutes, and we have just one question for him. I can see the excitement (or is it bewilderment) on his face as he wonders what exactly we will be grilling him over.

To cross-platform or not cross-platform

When looking for automation testers for apps running on both the iOS and Android platforms. Should you look for people with the experience in cross-platform testing frameworks to avoid having to do both native iOS and Android solutions?

Myself and all the Novoda test automation engineers have a lot of experience with all sorts of different frameworks, including cross-platform frameworks such as Appium as an example. From my experience, everything you put into getting Appium to work as a cross platform testing framework isn't worth the effort.

Is there an effective solution that is cross platform, or should you stick to native testing frameworks?

While I've read some blogs online (light on the details) about folks who've gotten a solution to work for them using Appium, I've yet to see any real world implementation live up to the hype. There will always be differences in either the user journey through the app, the implementation, or simply page layouts that force an Appium developer to make one exception after another in the test cases.

So what should you do to implement test automation across iOS and Android?

When we recommend folks looking to implement a test automation framework for both their iOS and Android apps, we recommend to put Espresso in place for Android and XCUITest in place for iOS.

Either of those frameworks are significantly faster execution time than Appium

Either framework will happily live alongside the app codebase in a single repo

But wouldn't appium mean only having to do the work once?

A tester will spend more time trying to bend Appium to their will, than they would have spent if they had just used one of the native frameworks.

iOS engineers will already be familiar with XCUITest and Android engineers will already be familiar with Espresso. Therefore making code reviews and pairing for your automation engineers faster and easier.

If engineers aren't skilling up on cross-platform, where should they spend their time?

The real skill set for an automation specialist comes in creating test scenarios and building test pipelines that provide information about the health of the app and quickly identifying risks to achieving product goals. Not in being able to identify page objects on one platform or another. A test automation engineer should be able to implement a native framework on both platforms.


Thanks to JT for sharing his insights. If anyone reading this wants to ask Novoda some specific questions, we are always happy to make more in this series or answer your questions - contact us here.

We're always open to sharing our knowledge and offering insights in relationship to your business. We can review your current testing frameworks, offer hiring insights, or discuss your process and show you some Espresso, XCUITest implementations working with your app.