DevOps. It might seem like you just can’t escape that word these days, but there’s always a reason that things achieve buzzword status. So, what’s fueling DevOps’ rise to the top?
The Rise of DevOps
DevOps (named from the combination of Development and Operations) is all about combining software development with software delivery to create a continuous delivery model, eradicating the days when software updates were released in regular increments on a yearly basis.
Its popularity has skyrocketed as businesses and consumers alike put more emphasis on the need to innovate and evolve regularly. After all, when was the last time you waited more than even six months for updates to the software you use? Would you even use software that required you to wait a year or more for a new version? 10+ years ago, you would have. Today, not so much.
DevOps and Testing: Not Always an Obvious Match
For testers, the rise of DevOps has been an interesting ride. It’s raised a lot of questions about where testing fits into the DevOps lifecycle as well as the role of manual testing, as DevOps emphasizes automation. However, it’s time to ease these concerns.
First of all, testing isn’t going anywhere. Sure, testing might not be specifically called out as a stage in DevOps models, but that doesn’t mean that testing doesn’t have a place in a DevOps world. It's quite the opposite. Testing fits in at every stage of the DevOps lifecycle. Perhaps the drawings in this point of view best represent that idea.
Secondly, manual testing can indeed be a part of DevOps. Contrary to popular belief, you can embrace DevOps without being completely automated. While automation may be important to DevOps, at its core, DevOps is all about Continuous Delivery. If you can make that Continuous Delivery happen with manual testing, then you can still follow a DevOps model. Furthermore, manual testing remains critical for organizations, as it can often find more severe defects than automated testing can.
How Testers Can Adapt to a DevOps World
While testing — automated and manual alike — most certainly has a place in a DevOps world, testers do need to adapt in order to deliver the most value. Here are five ways that testers can do just that:
1. Embrace Blurred Lines
With the rapid deployments that characterize DevOps, the lines between production and pre-release environments are blurring. Testers can impact developers’ pipelines by being ready to validate software that’s in production. In other words, by testing software that’s in production, testers can become more like end users and analyze what’s actually going on as opposed to solely what’s in development to provide faster feedback.
2. Refer Tests Back to Source Code
In a DevOps environment, testers always need to refer tests and any issues uncovered back to source code. This referral notifies everyone of what’s happening in order to ensure alignment between testers and developers. Without this referral, testing results may not sync with the source code that goes into production. Furthermore, referring testing to source code also helps develop a strong business case for conducting testing.
3. Insert Exploratory and Session-Based Testing at Different Stages of the Pipeline
Testers need to find ways to insert exploratory and session-based testing at different stages of the pipeline to ensure that testing doesn’t get lost in the shuffle of the rapid pace of development. Testers should emphasize that they are not trying to pump the brakes on development, but rather are launching exploratory sessions to jump into the environment in order to validate it and give feedback from an end user perspective before the software goes into production.
4. Make Communication a Priority
It may seem obvious, but we can’t overstate enough how critical communication is in the world of DevOps. With DevOps, you suddenly have cross-functional teams that own the full scope of a product, and that makes ensuring the entire team is on the same page critical to moving quickly (which is key to DevOps) and delivering the best possible final product.
5. Become Well-Versed in DevOps Technology
By familiarizing themselves with some of the technologies that enable DevOps — such as Infrastructure as Code (IaC), which also requires testing — testers can gain a position of authority to hammer home the point that software hasn’t really been tested unless it’s been tested in the same environment in which it’s deployed.
Make the Value of DevOps Testing Obvious
At the end of the day, DevOps and testing might not always be an obvious match, but they are a necessary one. That said, testers can go a long way toward making this a more obvious and seamless match by adapting behaviors like those outlined here to add more value and to better demonstrate that value to the broader DevOps team.
When it comes to software testing in the agile era, the struggle is real. Learn how to tackle the challenges head-on with this advice from QASymphony.