The uptake in Agile and DevOps processes has led to changes in how software is written, tested, secured and deployed. Among the key changes organizations are making is to decentralize their test and QA teams.
This is being done in response to organizations first looking to modernize testing practices by shifting testing to the left of the software development life cycle, but it quickly becomes clear that developers feel they don’t have the time to test, nor do they have the requisite skills or tools. To address this challenge, many organizations are embedding testing professionals in Agile teams or squads, to share knowledge and help those teams begin testing as soon as requirements are defined. But that only takes you so far.
As Stephen Feloney, head of product, continuous testing at Broadcom, explained: “You have the agile testers as part of the agile teams, and they are doing the majority of testing on those teams, while the developers are doing unit testing and maybe a little bit of functional testing and a little bit of performance testing. The testers, then, are the ones doing a lot of that component-based, service-based testing. They’re doing the performance testing; they’re doing all that work.
“Now, there also comes a time for end-to-end testing,” he continued. “You end up having a lot of different development groups working on their individual components, their individual services that are going towards release. As much as in the ideal world all microservices and services are 100 percent independent of each other, and everything can be deployed whenever they want it to be deployed, in reality that’s not the case. There still needs to be some end-to-end testing. And that’s another group of testers, that more than likely sit outside of the individual agile group that will do some end-to-end testing before a release to production.”
This second level of testing can involve taking the test assets created by each individual team and running them in a bigger scope, to validate the software from end to end, and to make sure the changes didn’t break anything, as well as testing from the user perspective. And, according to Alex Martins, head of solutions engineering at Broadcom, there’s another layer that introduces automation and intelligence into the testing. He went on to say that this requires a mature DevOps platform, with multiple pipelines for each application and environment, which is complicated enough to architect when dealing with cloud-first or cloud-native applications, but when dealing with legacy apps and environments, ERPs and hybrid systems, the complexity is exponentially higher. This is where he sees the biggest challenges today.
Feloney noted that shifting left does not eliminate testing time, but it makes it faster and part of the CI/CD process. A single team of testers isn’t waiting until the end of the sprint or the end of the cycle to test. “Once the requirements are created, auto-create your test cases, auto-create your tests, and so a lot of automation happens up front,” he said. “And what we’re saying is you need a tester that has the purview of everything, but they’re working in conjunction with the teams. Testing is not an event that happens after development. It all happens at the same time. There may be a slight delay after everything comes together, to do a final comprehensive test, but it’s not like it’s going to delay you two weeks. It might delay you by a few hours.”
Martins summed up the role of testers in a shift-left world. “If you shift testing to the left using the same techniques and methodologies that you use today, testing will continue to be a bottleneck. If you are shifting left, you have to change the way you do testing. We’ve been doing testing the same way for the past 30 years.
“We absolutely need the skills and expertise of testers, as they have a comprehensive understanding of an application and know what needs to be tested, how it needs to be tested, and when in the agile sprint it should be tested,” Martins said. “The role of the tester becomes the one of a coach, who can see what’s working and not working and helps the team fix what’s needed and scale the good practices. This lets developers focus on what they do best: coding.
“At the same time,” he continued, “the role of the tester in the agile team becomes one of much more importance than before, in the traditional centralized testing philosophy, because their skills help agile teams understand how to build quality gates into every activity phase of the development lifecycle — all the way back to planning and requirements, and then all the way forward into testing in production. Shift left doesn’t limit that expertise, it expands it, so that the knowledge of testers is available knowledge to teams throughout the SDLC.”
Content provided by SD Times and Broadcom