We have implemented an automated testing routine to test our products to ensure bug free builds even with changing technology.
The same process that developers at Facebook use for React Native !
Why Automated Build TestingSince we are dealing with app starter that use lots of ever changing technologies like ionic, react native etc. and their dependencies, it becomes imperative for us to ensure that the starters remain bug free for a long time. Changing dependencies have always caused issues to developers, and it is almost impossible to keep track of every changing dependencies, even with npm or yarn.To make sure we keep the starters bug free, we have implemented an Automated Test Routine using Jenkins Server and Continuous Integration methodology. In simple words, our server will test the products Every Day, yes, every day. And it will report to us and all website users in real-time if the starter is passing the test. Amazing, right ?Following image displays the process in a nut-shellWe have implemented this to assure our users that our products are built with the highest quality standards, and changing technology effects are being tested regularly.
How can I believe it is a valid test ?We display a build passing image in the PRODUCT STATUS widget, right next to product description. It looks something like thisThis is the same notation every major code repository on Github uses to show their build status. E.g. REACT NATIVE uses the same process to display the status of their Github repositoryYou can often find our build tests running live which displays the status like the following
How Automated Build Testing worksOur servers are loaded with Jenkins. Jenkins is an automation server which can do a large number of tasks, including automated testing.Our Jenkins server runs daily build tests on our products and alert us (and you) in real-time if any product is facing a build issue. To carry out this process, the server does the following
- Clears out all past builds, so there is no caching effects
- Pulls the latest code from the product repository
- Creates a fresh install of the starter, including fresh node modules, platform and Cordova installation
- Creates an android build with
--prodflag, to ensure the code is able to create a store deployable APK
- Copies the APK for demo purpose
What things are ensured by Automated Build TestsAutomated build testing ensures
- The code clears all linting criteria
- The starter code is bug free
- The starter code is able to create a Store Deployable Android APK
- User and Enappd developers get real-time information of the product status, so that a bug free product can be maintained