In our Mingle Product development we use Go extensively for our testing activities. We find it very helpful and here’s why:
Fast feedback: Our main motive is not only getting a build out exhaustively tested with automation in place, but also to get faster feedback to the developers. Go helps us deploy“unstable” installers (created from code that is freshly checked in) on to our QA machines by a single click. This saves our testers time and allows them to do more exploratory testing on features, while giving instant feedback. This helps us to fail fast and improvise. The screen below shows every checkin available to generate installers and also the ability to do a literal push-button deployment to our QA boxes.
Central build-test-release space for the entire team: We dog food our Mingle by managing Mingle, Go, Twist and upcoming products in Mingle. It’s a production environment which gets a new build every day. This helps us sign-off our stories and newer features being tested by other teams to loop back feedback on our product. Below is the pipeline of our daily deployment.
Support for exhaustive automated test builds: With the help of Go we run our upgrade tests. As Mingle has to be installed, a product major challenge is to support upgrades from our older releases. This means we are supposed to test more than 4 releases for upgrade which can be time consuming (around 2 wks). With Go, we have automated this for 3 OS and 3 database flavors. These tests are run on every single build that goes green across all platforms and databases we support, and take only take a couple of hours to run. Below is an example:
Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.