By breaking down siloed development and operations teams, DevOps encourages faster development and increased output. However, with increased automation, what happens to QA?
“A lot of traditional QA professionals have definitely been sidelined,” Dave Denver said in a recent webinar, QA’s Strategic Role in DevOps. Denver serves as Applause’s Senior Solutions Consultant and has over 15 years of experience in software engineering, consulting and DevOps implementations.
Denver was joined on the webinar by Applause Solutions Consultant Chris Doucet, who has over a decade of experience in software engineering, to discuss how DevOps teams can better strategize and collaborate with QA.
“DevOps is really about reducing time to market. But if your quality decreases as your number of releases increases, then you effectively shoot yourself in the foot every time you release.” Doucet added, stressing the importance of the role of QA.
Here are three key tips Denver and Doucet shared to make QA a more strategic element of a DevOps organization.
Create a definitive meaning of quality
Different organizations — and sometimes different teams within the same organization — have different measures of quality. Quality can refer to business goals, number of bugs or something else entirely. It’s important for a business to define its version of quality upfront — and QA can play an important role in that.
“It’s important to define quality upfront from the onset when working toward a release because this really paints a picture for your DevOps team of having one shared and public goal to strive for,” Doucet said. “But quality can be a really tricky thing to define because, in its truest form, quality is actually a determination made by customers themselves, a measure that’s both objective and subjective in nature.”
Denver suggests starting with finding your own definition of done. ”When is a story marked completed?” Denver said. “This is something that is agreed upon by the team, but it’s really owned by the team as well.”
Specifically, Denver and Doucet offered some tips for QA teams to help codify quality:
- Implement a quality gate
- Perform time-box exploratory testing
- Have a standardized bug triage process
Be proactive with design
Another way to better integrate QA within a DevOps process is to engage QA engineers in the product design stage. QA teams are in a unique position as they see firsthand how the product actually works for the customer. This gives them the opportunity to help prevent mistakes before developers even code them. QA teams can become involved in sprint meetings early on and be a full part of the DevOps teams.
“Getting that feedback from somebody with a customer-centric mindset can really stop potential bad decisions and make sure that as we’re building, we’re keeping that mindset throughout the entire process,” Denver explains.
Imagine this example: The product design team will often build a workflow that provides an overview and layout of how a function flows within the app. The app must integrate with a database, APIs and other apps. Since each interaction could be a point of failure, QA can help identify where potential disconnects lie in the design plan between apps.
“Integration points are a common source of failure with any product workflow because you’re interacting with other tools, apps, APIs that are all themselves subject to change,” Doucet said. “So identifying these risks ahead of time, developing test harnesses, test scripts to quickly highlight issues in areas like these, can really save a lot of time and stress down the road.
“And to build on that, as applications — especially when you start looking at mobile devices and the like — there are a lot of third-party apps, APIs, integrations that you may not have control of. So from a design perspective, and then even a development perspective, building and testing those using mock services and mock back-ends can give you a lot of value.”
,
Strategize Around Automation
Finally, QA can help build an automation strategy.
“QA getting more involved in automated testing is really where I’ve seen a lot of the industry moving,” Denver said. “DevOps is all about shifting left and getting feedback faster. However, there’s always that aspect of, ‘Where should you not automate?’. What are things that don’t actually make sense as an automated test? You always need that second pair of eyes to do those exploratory cycles and figuring out where the particular things should be automated.”
,
When a software development team codes automated tests, a QA engineer should verify that the team has considered every test condition. The tester’s knowledge of the full spectrum of the system enables them to spot conditions or integrations scenarios of which the developer is unaware.
“One need that becomes more apparent when you release more quickly is just the need for automated testing of your core functionality,” Doucet said. “You always need to ensure your most critical flows and capabilities that your customers are depending on are functioning properly. So building or tying into an automated regression suite is key.
“And this is where quality engineers and SDETs can really shine by taking ownership of this and helping to make it truly robust, so that greater effort with subsequent releases can be focused more on the testing needs of newer features and flows vs. existing ones, and eventually incorporating even those into the regression suite as well.”
Watch the full webinar to get detailed tips for strengthening the role of QA in DevOps. If your team needs scalable QA coverage without losing velocity, reach out to Applause to learn how you can leverage our quality experts and global community of testers for a better product at release.