Why QA is essential for DevOps

Why QA is essential for DevOps
The Siliconreview
10 June, 2020

Amazon, NASA, Netflix, Etsy, Walmart, Target, Fidelity, and Hertz are just a few of the big names that are embracing DevOps. The software development philosophy offers a number of benefits, including greater collaboration, faster fixes and turnaround times, agility, increased engagement, and many others.

Because DevOps practices are meant to improve the process and reduce instances of bugs and defects, they go hand in hand with quality assurance (QA) testing. Products must be rigorously tested, monitored, and evaluated in order to ensure that they function correctly and meet user expectations. However, in the landscape of DevOps, the role of the QA professional and process is being redefined.

What is DevOps?

The term “DevOps” is a combination of development and operations. It was coined in 2009 by Patrick Debois, an adopter and proponent of the practices. Many practitioners don’t think of it as a process but rather a culture or way of doing things.

DevOps brings together agile approaches, collaboration among people and teams, and automation to increase delivery speed, reduce the instances of defects, and improve the quality of products. Rather than being distinct processes, software development and QA testing happen concurrently and are intertwined to shorten the turnaround time of a product.

QA and DevOps

It’s probably clear from the definition of DevOps that QA testing is integral to the approach. Still, the QA process looks different from traditional methods. Here are some key aspects that are redefined.

Increased efficiency

DevOps depends on efficiency and speed. Therefore, QA services must be proactive in their approach. This means being involved early in the software development process in order to find defects quickly. They must focus on improving response times and continually improving the user experience — even after the product has been launched — in order to achieve faster turnaround times.

This also means that the QA team must be able to prioritize, as well as be closely involved in every stage of the product’s development and deployment. The emphasis is not on ensuring that no bugs exist — in fact, that’s impossible in any QA testing scenario — but rather on ensuring that the requirements and user expectations are being satisfied.

Changing roles

One of the biggest changes that the DevOps culture brings to QA testing is the very role of the tester. While the QA team and software developers should always collaborate, the boundaries of their roles are blurred here. Everyone must work together from the very beginning of the development cycle in order to ensure the product’s quality and take responsibility for the end result.

How does this play out? The developer must be involved in the QA process, continually evaluating their work to catch defects. Meanwhile, the tester will likely need a strong coding background in order to begin testing early on in the development cycle and even repair code themselves, with minimal back and forth between the developer and tester. Ultimately, this will speed up delivery.

Developers may even be asked to script their own test cases, with the QA professional acting more as a consultant or advisor.

More reliance on automation

Automation is key to DevOps since the process depends on agility. In many cases, all testing will be completely automated to improve delivery time. For the QA professional, this means developing an automated testing framework that can be successfully implemented quickly.

Because manual testing is deemphasized, the QA professional will play a role that’s more akin to planner and facilitator. Together with the development team, the QA staff should map out the requirements, what automated testing should prioritize, and script test cases accordingly. While speed is of the essence here, that doesn’t mean thoroughness should be sacrificed — all pieces of code must be tested.

However, the approach does include less repeat or regression testing because efficiency is so important. Moreover, the focus will be on the standardization of testing to, again, increase the turnaround time.

While DevOps means considerable change for QA testing, it doesn’t make the process any less important. In fact, quality is even more essential in this context. The role of the tester evolves, but they will still be integral to the software development lifecycle. Rather than emphasizing testing that’s distinct from development, DevOps intertwines the two processes, closely involving the QA professional from the beginning stages.

QA will also focus more on advising the rest of the team on quality assurance matters rather than testing itself. Ultimately, the QA tester’s role will not become obsolete but center around different responsibilities and tasks aligned with larger organizational goals.