Assert(js) Speaker Series: why building a robust testing and deployment infrastructure is important

Rotem Meidan
Assert(js) Testing Conf
3 min readJan 5, 2018

On Feb 22, 2018 I will be giving a talk about Detox at Assert(js) Conf in San Antonio, TX. Following my CFP acceptance, I was requested to answer a few questions as part of the Assert(js) Speaker Series.

Assert(js): How do you convince management or clients that testing is important ?

I’d like to take server development at Wix as an example for this question. Today, our server developers rely solely on automated tests, there is zero manual QA in the release process. A developer commits changes, these changes run on CI, executing that project’s test suite, test suites of projects depending on that change are also being triggered, and if everything is green, it can be pushed to production. Wix deploys to production over 150 times a day. This confidence is a result of serious commitment to testing, building robust testing and deployment infrastructure. We want to reach the same level of confidence with our mobile stack as well…

Wix’s mobile team grew from 8 to ~40 people in the past 21 months. One of our main objectives is to create a “zero manual QA” process for our mobile app, same as we do with our servers. We put lots of resources into defining testing methodologies, building testing infrastructure (such as Detox) and using all that when developing new product features. We believe these actions will eventually help us grow our mobile teams to 100 or even 150 developers while maintaining high development velocity.

A big part of Wix’s mobile infrastructure is open source, you can find a few good examples on how these projects are being tested and maintained, allowing us to sleep better at night.

React Native Navigation v2: A complete TDD rewrite on React Native Navigation, including 5 different test suites, 3 units tests suites, for native Android, native iOS and JavaScript, and 2 E2E suites, for iOS and Android.
Detox: Our home brewed End to End testing framework for mobile apps. We use Detox across the different modules of the Wix app. Detox itself is a TDD project running a comprehensive E2E suite to test Detox’s own API on each commit. We also test React Native Navigation using Detox…

A post I wrote about Detox deals a lot with the history of the mobile release process in Wix, and why we invest a lot in testing today.

Assert(js): How would you convince a developer to start including testing in their workflow?

Having answered the previous question, not much is left to add here, but an important point I would like to emphasize is that management should not be the one telling developers to test their code, like they don’t tell developers which code style to adopt or which IDE to use. There are are many great testing tools out there today, especially if you write JavaScript. The JS ecosystem has made a huge leap in the past few years: much better syntax (ES6/7), faster engines, native support for most of ES6/7 syntax in node, tools like Jest, wallaby and many others, make it a breeze to write and maintain tests. Use them.

For conference talk details visit https://www.assertjs.com

--

--