Automated testing is required to reach DevOps’ Holy Grail – continuous deployment. Despite what you may have seen in Indiana Jones and the Last Crusade, you do want to be the one who leads your team to find the Holy Grail. Trust me on this, you will have chosen wisely. It’s the best – and only – way to ensure you sleep at night if you are responsible for developing, deploying, and maintaining digital products for a living.
So, why do you need automated testing in your life? It’s a prerequisite to get to the point where any developer working on your team can feel comfortable pushing code to production. Period. Well, actually…I suppose it’s not the only way. You could skip automated testing in your continuous integration/continuous deployment (CI/CD) setup and focus on lightning-fast rollback instead. That way, when untested code gets into the hands of your users and explodes, you’ve got an exit strategy…
Here are three other reasons that automated testing is well worth the investment over the long haul for any product development team.
The code your team is busting their humps to create can and must make its way to production. Quickly. I tell our teams this all the time – code sitting in a staging environment, or software repository, waiting to be deployed has no value to our clients. Worse, it has no value to their customers. Zero. As an organization, we want to get that code out into the world as quickly as possible so that our clients’ user base can use it, experience it…buy it. High quality, frequently released software is what is driving the digital economy and winning markets.
Automated testing ensures you don’t get the dreaded “It worked on my machine!” or “It worked on staging!” fits of terror after code has been pushed to production. You want your releases go through a battery of regression tests every time code is checked in. CI/CD is there to get your software into production far more quickly than if you are relying on more labor intensive manual testing. This gets you consistency and keeps you from making the same mistakes over and over again.
How will you know when you’re ready to drink from DevOps’ Holy Grail? When enough trust has been built up that your company’s leadership team (or the leadership team of the client you’re working for) has enough faith in your automated testing setup that any member of the team can press a button and commit the code they’ve been working on to production. This is the case with a number of 3Pillar’s client teams, and it’s the type of setup that can and should only be instituted if there’s an airtight automated testing system in place. It’s a tightrope that you don’t want to walk without a safety net. With the right safety net in place, however, you can sprint across that tightrope without fear.
If you’d like to read more about the long-term value and benefits of automated testing, both are points I cover in more detail in another recent blog post, Automated Testing Is Engineering…and Manual Testing is Lunacy.