Speed Up QA Test Process in Mobile App Development with React-Native

Kevin nathaniel
Ralali Tech Stories
3 min readJan 29, 2021

Every app development needs to be tested by a QA Engineer. Flow development in mobile app development may vary. In Ralali.com, we created Pull Request(PR) and trigger CI to check our unit test passed after we develop some feature or fixing bugs. If a unit test passes and there is no duplication code or potential bug, our CI/CD will build the app and deliver it to our communication platform so our QA Engineer can test the app.

The problem is any change of code that has been developed needs to be built first before QA Engineer can test our code even if the app was built with React-native.

How do we solve the problem?

To solve this problem our mobile app team came up with a solution and created Venge. This solution can speed up QA to test our code because they didn’t need to install the app first like before, they only need to install the app one time only. So what if they want to test different pull requests?

Simple, they only need to switch bundles from within the app. This system is similar to codepush at first glance. We develop the code, upload bundles for specific versions of the app and then users get updates through codepush. The difference is users have freedom to choose what bundle that they want to switch as long as the bundle exists.

This solution came up similar to the tophatting solution that Shopify uses but we didn’t use backend services for store bundle and metadata at the moment. Shopify already uses this solution and the result is promising. It cuts time consuming experience and makes their developers load their work within seconds.

How does it work?

Venge enables the user to switch the bundle based on the ID of the bundle we want to download. We store react-native bundle on amazon S3 with specific ID as filename. Even though Venge can change a bundle easily, there are still some limitations, the biggest one is that venge can switch bundles only if we didn’t change native code or if that bundle didn’t depend on a new library that didn’t exist when that app was built.

We’re applying Venge for Big Agent app. It will be the first one to try Venge to see the result. Thus we are about to find out whether there are new limitations that we don’t know and also how much influence Venge can affects the development process.

--

--