Automated software testing is all the rage in the industry and for good reason. Although manual testing is still in place in many technology companies, many fast-growing organizations have adopted QA automation testing to speed up processes, redirect manual efforts and minimize the chances of error.
It is quite common for businesses to outsource the quality assurance processes of their software development cycle. It saves them time, cost, and resources.
This means it is essential for technology organizations like ours that offer software quality assurance services, to adopt automation, one of the most accurate, efficient, and reliable approaches to quality assurance. In this article, I’ll talk about how the QA team at VentureDive carried out automation testing for the Muslims App. It is a community engagement app by IslamicFinder that aims to unite Muslims around the world through a single platform, offering networking, knowledge sharing, and learning.
Let’s dive in!
How did we manage before QA automation?
Muslims is a hybrid mobile application developed in React Native. It has the same code hierarchy for both the Android and iOS platforms. This means we have the same code base for QA automation as well.
While the app was in the development phase and new features were getting continuously integrated, we were carrying out manual quality assurance side by side. The process was consuming a lot of effort. Since every issue was reported, the QA team had to dig down into the apps, again and again, to ensure that the overall performance of the apps remains optimal. Every time an issue was reported or any new build was shared with the QA team, they had to go through all the features of the app, which made quality testing a tedious and time-consuming process.
In short, we dreaded it!
As the application got bigger and more complex with every sprint, more issues popped up that needed fixing. This meant it was no longer possible for us to test everything over and over again. Therefore, we decided to create and implement an efficient testing process to reduce the testing efforts of the team as well as enhance the overall quality of the apps.
Enter: a hybrid automation system for mobile apps on both the iOS and Android platforms.
QA automation covers a lot of things we previously had to do manually and repeatedly. It took on the menial and repetitive tasks for us, delivered better testing quality with minimal chances of error, and helped deploy high-quality, bug-free apps. Our automation engineers developed the QA automation process for hybrid apps so we could test each feature more thoroughly, using both manual and automated systems, and deliver a seamless product to the users.
Why did we decide to automate the Muslims app?
The thought process behind automating the Muslims app was that we wanted to reduce the overall testing time of the app on both the Android and iOS platforms. The idea was to automate the testing of any feature being developed. Over time, this would enable us to have a full-fledged testing process in place that would streamline quality assurance efforts, reduce time and cost spent, and deliver efficient and high-quality apps to customers within record time.
The whole QA automation team brainstormed a lot on how to automate the hybrid application for Muslims. We discussed different technology stacks and their pros and cons with the goal to increase the overall quality and performance of the app through a smooth QA automation process.
Why did we use the same codebase for Automation?
We used the same code base for the Muslims app automation because we were developing a hybrid framework, and a single code base meant fewer changes in the automation framework. Whenever there is a change in the application hierarchy, the same code base means reduced development effort in the hybrid framework. Here’s a resource to help you understand the difference between hybrid and native applications, and which might be a better choice for your project.
To make life easier for automation engineers, we can reuse this QA automation framework for any hybrid app developed in react-native as well as native apps. This would make managing the code base simpler, with lesser changes and easy integration of new features within the automation framework.
What technology did we use for QA automation?
Our QA automation engineers adopted WebDriverIO, a tool that allows you to automate any application written with modern web frameworks such as React, Angular, Polymer, or Vue.js, as well as, native and hybrid mobile applications for Android and iOS.
Using WebDriverIO, we can easily develop any web or mobile automation framework, thanks to its exciting feature set and valuable plugins. Its libraries are easily available and can be integrated with the framework quickly, so it saves a lot of time for automation engineers.
However, we chose WebDriverIO over Selenium because of a multitude of technical reasons:
- WebDriverIO libraries are wrappers of selenium libraries as these are developed on top of selenium libraries – it provides faster execution than using Selenium APIs with Appium, a test automation framework.
- WebDriverIO provides a runner class where we can define all the necessary prerequisites, which makes it easier to configure the execution of automation scripts. Whereas, we have to write a lot of lines of code to set up the configuration process of Selenium with Appium.
- WebDriverIO has its own Appium service so it takes only a few minutes to configure Appium with it.
Using a hybrid automation framework like WebDriverIO has many advantages. For instance, a one-page object class is developed for both the Android and iOS platforms, which means we do not need to create a separate repository for each platform. A generic helper class package is also created to reuse the utilities within the project and we can use this framework with any project in the future if we want to develop a framework for hybrid and native apps.
Wrapping Up: QA Automation of the Muslims App