If you’re working with DevOps, there’s a good chance that you’ll know about continuous testing. In this blog post we take a look at continuous testing to understand why it plays a key role in DevOps, and why test automation is essential in enabling continuity.
They have emerged with the need to make testing more lean and to enable businesses to deliver quality at speed.
DevOps, CI/CD and Agile are different, but share the same purpose and goal of allowing businesses to deliver quality through flexible delivery models that drive fast feedback loops and immediate responses, allowing businesses to adapt to changes in the market quicker than ever before.
This is made possible by automation, which you can learn more about in our guide to achieving continuous delivery with test automation.
In this blog post, we’ll focus on defining continuous testing and DevOps, and explain how these are intertwined. We'll answer the following questions:
First, let’s take a look at CI/CD, and break down this concept in order to understand what continuous testing is, and why it’s strived for.
CI/CD stands for continuous integration and continuous delivery.
In practice, CI/CD is a pipeline with a series of tools that work together to deliver high quality software at speed. The CI/CD pipeline is by definition completely automated, with no human intervention.
It is automation that makes the continuity of processes possible, and implementation of automation tools is therefore a prerequisite for building a CI/CD pipeline.
The CI/CD pipeline consists of several parts:
In this post, we’ll focus on the first part of this pipeline, and more specifically, continuous testing.
Writing code is a bit like building a house: You start with the foundation and build your way up. Testing is like making sure that the materials used for building are stable and won’t break.
So what happens when you get to building the second floor, and you realize that the wooden frames used to hold the walls on the first floor aren’t strong enough?
You have to start over.
But what if you had found out about the faulty wooden frames whilst still building the first floor?
It would have been a whole lot easier and quicker to fix.
This is why testing as close to the build is incredibly important - especially if you want to avoid wasting needless developer resources or throwing valuable time out the window.
Catching bugs sooner rather than later means that valuable time and resources can be saved on big rollbacks.
This is why teams strive to test continuously, rather than at the end of the cycle.
Naturally, you need more resources and power to test more frequently.
If you were building a house alone, you might be inclined to skip testing, because it would take you forever, and you might consider the risk of faulty foundations low.
However, even the smallest fault can make that house fall to the ground. So to eliminate risk, a small investment can be made: a robot.
Automation robots can, once set up, carry out the testing for you, and let you proceed with your building, at the same pace as before, but with much lower risk.
This is why automation is key in achieving continuous testing.
So why is continuous testing a key ingredient in DevOps?
As mentioned at the beginning of this article, DevOps also aims to deliver quality at speed through flexible and agile delivery models.
Quality comes from more testing in breadth and depth, and speed comes from frequency and continuity. And this is exactly what test automation offers.
Let’s have a closer look at DevOps to better understand the priorities that make continuous testing key.
DevOps is the contraction of Development and Operations. It has come into existence with the need for better collaboration between these two departments. DevOps is not just a mindset, but a job title for people whose role it is to assure this collaboration.
As we wrote in this blog post about DevOps;
DevOps has emerged in connection with the agile movement as a result of the need to increase the frequency and speed of product releases while maintaining or improving a certain standard of quality.
DevOps encourages collaboration and communication between teams from development to deployment, and requires automation throughout the pipeline in order to enable the flexibility and continuity that is required to deliver quality at speed today.
Simply put, continuous testing makes it possible to achieve the principle aim of DevOps: to deliver quality at speed.
When talking about DevOps as a job, it is the role of the DevOps to build the CI/CD pipeline, in order to ensure that software keeps a high quality from development to release, and that it moves with speed and agility through the pipeline.
It is therefore also the DevOps’ task to find and implement test automation tools that will help them achieve continuous testing, as well as other automation tools for the remaining pipeline.
In sum, it is the role of DevOps teams to build the CI/CD pipeline, and thus implement automation throughout the software development life cycle in order to deliver frequent, reliable software.
Continuous testing is an important part of the CI/CD pipeline, and can be achieved by the means of test automation.
You can learn much more about the role of DevOps, the importance of test automation, and how to start building your DevOps pipeline in our whitepaper: DevOps and Test Automation.