Everyone, it seems, wants to shift all the steps required to produce and deliver quality, performant software to the left. The assumption is that by asking developers to take on a greater role in quality assurance and security, the cost to remediate problems is lowered by discovering those issues earlier.
The downside of this is that developers now say that they spend not even half of their time on coding, meaning that instead of working on innovative new products or features, they’re learning how to test all aspects of their application or trying to understand how to secure their code. (Thanks, “you build it, you own it!”)
Many of these same developers also report in surveys that testing is a big headache for them. “Rather than reducing stress for developers, shift left has introduced new obstacles,” said Gevorg Hovsepyan, head of product at test automation platform mabl. “They built something. They try to deploy but testing breaks. Then they are responsible for fixing the test, trying to update the test, then running the test again. And if things don’t work out, they can spend a lot of time trapped in this cycle.”
But developers often lack the proper tools and proper training to handle the burden of testing. And, as mandated delivery cycles grow ever shorter, it’s easy to see how testing becomes a significant stress driver for developers.
As deployment frequency increases, so does the level of testing required to ensure that quality is maintained. This is where test automation can relieve many of the mundane tasks that slow developers down. “We see in our most recent Testing in DevOps Report that teams who have high test coverage have less stress in deployment,” Hovsepyan said. “In fact, if we compare the teams that have high coverage to the teams that don’t, the high-coverage teams are twice as likely to have stress-free deployments.”
But, Hovsepyan noted, it’s not only about automation – it’s also about testing strategies.
And this is where shifting testing to the left also impacts quality assurance engineers, whose role is changing – from writing and running the tests to becoming the architects of quality. In these scenarios, QA becomes a center of excellence that enables product teams – developers, owners, and designers – to deliver high-quality software.
QA engineers in organizations that have shifted testing left are defining what quality looks like and enabling more people to participate in building quality software. “We’re seeing people in our customer base taking more of a leadership role in thinking about what quality really means and what it looks like in the supply chain, versus focusing exclusively on automating test cases.”
Quality is a team effort
Organizations doing very frequent deployments must understand that the test effort should be shared, and everyone should participate in building quality into the software, Hovsepyan said.
“This means that developers are not always the ones building the tests, which makes it much easier for developers to support testing” he explained. “They might build the initial set, but low code means that test creation is faster, and more roles can contribute there. That’s number one, and number two, quality efforts are built around improving the customer experience, rather than a binary pass/fail mindset. This helps everyone – developers, QA, and business stakeholders – understand the true impact of quality engineering and see the value in testing efforts”
With quality engineering, teams test the full user journey by going through the steps of logging in, finding what they need, checking out, and those steps in between. “I think using an outcomes-focused approach to testing that’s focused on the user journey versus spending cycles of editing the code in the script helps improve testing efficiency and accelerates development cycles.”
Reduce the test effort
To ease the load on developers, organizations need to start thinking beyond the typical, traditional technology stack and looking into modern testing solutions, Hovsepyan suggested. For instance, he said, adopting low-code automation tools enables teams beyond developers to join the testing practices.
These cloud-based solutions often employ AI to reduce the burden of test creation and maintenance for everyone, including developers, he noted. These modern tools leverage intelligence to help teams reap the benefits of thorough testing without slowing development cycles.
Finally, Hovsepyan pointed out that organizations following Agile practices – iterate on small changes, get customer feedback, and iterate again – further reduce the risk of delivering suboptimal experiences.
“These transformations – cloud, Agile, and quality engineering – all fit together,” he said. “Modern technology stacks give teams the means to deploy multiple times per day, methodologies like Agile give them the processes, and quality engineering ensures that changes only improve the customer experience.”
Content provided by SD Times and mabl