The Role of Automation in Mobile Continuous Testing Q&As

Events — Published April 6, 2023

My answers to questions I received at TAU Conference 2023

Recently it was a pleasure to give a talk about the role of automation in Mobile Continuous Testing at the TAU Conference powered by Applitools, and actually, it was an excellent opportunity to meet different test automation experts and attendees from all over the world.

If you missed the session, you could find the on-demand recording here:

During the session, I got various questions about mobile testing and CI, so I wrote this blog to answer them all.

Let’s get started!

Question 1: Automating tests for different devices

Question: What is the most efficient approach when automating tests for the same mobile app on different (Android/iOS) devices? Automate with a tool that works for both or a tool for each one individually?

My answer: The best answer always depends on the team’s needs and goals. Using a tool that works for both platforms is a good choice, because this approach saves time and effort in test automation as it allows you to write test scripts once and run them on multiple devices and platforms such as using Appium. 

But sometimes, the team decides to use platform-specific testing tools such as Espresso for Android and XCUITest for iOS, because they need the mobile developers to work closely with the test engineers in writing the UI tests because they believe it’s a shared responsibility. 

Additionally, they can use the same programming language. Test scripts will be in the same repositories, and using the native locators from the app will be directly accessible in this case.

Question 2: Testing multi-platform apps

Question: Is the approach to/process for testing a multi-platform app like Evernote (mobile, desktop, web) different from a mobile-only app?

My answer: Testing a multi-platform app like Evernote requires a different approach because the following reasons:

  • Each platform’s user interface, operating system, hardware, and software requirements (mobile, desktop, web) differ, so testing must account for these differences and ensure that the app operates as intended.
  • To ensure consistency across all platforms, including features like note-taking, search, sync, and collaboration, each platform must be tested separately, as well as its integration.
  • Testing the app across various platforms ensures the design, navigation, and features are consistent and intuitive.

In order to know how to deal with different platforms, these things should be included in the test plan and strategy at the beginning.

Question 3: Upcoming course content

Question: Is the outline described in your presentation today part of an existing course? Or will it be part of a future course re-haul of your existing course on TAU?
My answer: No, it’s not in my existing courses, but maybe we can have it in the future.

Question 4: Manual testing for mobile CI

Question: When in this mobile CI workflow would manual testing fit in? Or is it suggested that manual testing is not needed?

My answer: If your team would like to achieve the fully automated CI/CD to build, test, package, and release the mobile apps to the App Stores, manual testing will not fit in the lifecycle because the goal is to make the process fully automated as much as we can. But if the target is to have continuous integration only, you can build and package the apps and then send them to the manual testers to do the testing activities. After that, if there are no issues in the build or the release, you can continue with the release process of manually automating it. 

It always depends on the team goal and the release cadence. Some teams or companies release every one or two weeks; in this case, manual testing will be a blocker and releases can take a long time.

Question 5: Manual testing with an automation setup

Question: Is there still a need for manual testing, even with an automation setup?

My answer: Yes, manual testing can be used to identify issues not covered by automated tests, sometimes, different scenarios require a human eye, interaction, or decision. 

It always depends on the type of mobile app and the functionalities we need to cover; this can be added to the test plan and the test strategy from the beginning.

Question 6: Making apps testable

Question: Isn’t it also necessary that apps are made testable?

My answer: Yes, I totally agree, as a mobile development team, we should consider making the mobile app testable by doing the following tips:

  • By writing modular code, you can test individual components independently.
  • Make your app’s logic, data, and presentation layers separate using design patterns like MVVM or MVP. This will make testing easier.
  • Decouple dependencies between classes through dependency injection. This will make it easier to swap out components during testing.

Question 7: Using tools for mobile test automation

Question: If you’re not strong in mobile app automation, for something like a React Native app, would you stick with something like Appium (which is familiar with native automation/Selenium web), or would it be better to try the Maestro (or something similar)?

My answer: The POC (Proof of Concept) project is always the best, in my opinion. If you already have a React Native app, you can try to create a project and try to automate the app with Appium, as you know, Appium is a black-box testing tool so at the end you need only the .apk or .ipa files to be able to automate them, which is not different with React Native apps because at the end you will have already two native apps (iOS and Android). Or you can try Maestro. It’s a new framework, and it may be beneficial in your case.

Question 8: Staying up-to-date on industry skills

Question: Does the coming of flutter make the tester’s life easy?

My answer: I cannot guarantee that, as a tester, we face new challenges every day. For instance, we must learn about new testing tools and technologies, which requires us to stay on top of our game. In contrast, as we can see these days, AI is booming and is affecting our daily work, which makes acquiring unique skills indispensable.

Question 9: Preparing for ISTQB Foundation Certification

Question: How best to prepare for an ISTQB Foundation Certification?

My answer: It depends on which ISTQB certificate you want to achieve, for instance, if it’s the foundation level, you need at least 6 months of experience with software testing to understand the fundamentals and the concepts in the Syllabus. 

As you can see in the following image, the certificates have different tracks and levels. Each level required specific requirements and a different level of experience. You can find all the details on the ISTQB official website, including the Syllabus and the sample questions with answers.

ISTQB certification levels
Image source: ISTQB website

Besides reading the Syllabus, your background will be enough.

Wrapping up

I hope you enjoyed these answers to your questions, and I look forward to seeing you at the TAU and Applitools conferences in the near future.

Please do not hesitate to contact me if you have any other questions.

My LinkedIn:

My Twitter: @moatazeldebsy

Thank you for reading.

Happy testing!

Are you ready?

Get started Schedule a demo