How Testing Is Changing for the DevOps World
DevOps is becoming increasingly prevalent in the agile world of software development. Product teams are gaining better understanding and confidence in implementing DevOps, and most are getting better at it with every new product release.
The role of software testing and quality assurance is especially continuing to gain comprehension in a DevOps setup. This position has undergone a lot of change in the testing practices used, tools leveraged, and the shift in skill set and mindset of practitioners.
Testing practices have changed vastly, even from the days of the agile development cycle. Because testing happens in a very collaborative and continuous manner when integrated in a DevOps lifecycle, there is a need for a lot of automation. Test-driven development has become increasingly popular, and near 100 percent code coverage is also becoming inevitable.
Testers have a lot to learn from the DevOps environment. Given the core drive to collaborate, it offers a lot of best practices testers can use to beef up the quality assurance effort.
Leveraging standalone test automation tools by themselves does not meet the bar anymore. Testing tools aimed at promoting increased integration—in terms of both test coverage and ease of use for the diverse group of developers, build engineers, and testers all using the product—is becoming important.
Testers are having to spend a lot of time getting the automated systems and suites to a fully reliable and maintainable state up front. They end up spending much of their time from then on monitoring these systems, and free time is set aside for exploratory testing. This is blurring the lines between a manual tester and an automation tester. In fact, even nontesters have to test within their scope of operations. So, the tester is assuming the role of a leader, defining the scope of quality assurance and empowering the entire product team with the tools, metrics, and practices for monitoring the overall product quality.
That said, the tester also needs to work across disciplines. In a DevOps environment, a tester is also a developer, a build engineer, and a program manager. People are starting to share responsibilities, but they still need to retain their core areas of focus to integrate and collaborate in all possible ways.
The important question to answer amidst all of this collaboration is, When are we really done in DevOps? The word “done” used to mean when the test signs off on the defined quality exit criteria. However, because testing is also integrated and continuous now, when is the team really done?
Getting to a state that will help the team understand how the code is doing after deployment, implementing the right hooks for enabling system monitoring, and achieving true integration across teams are what define done in a DevOps environment. And the test team’s role in achieving this accomplishment is increasing by the day.