The software testing practices and mindset have radically changed since the early days of Agile and Lean. Software testing practices and mindset are an inseparable part of DevOps culture.
Shirly Ronen-Harel, Agile coach, Director, R&D Operations at Sisense, talks about the software testing mindset within the DevOps world, in her recent blog series.
DevOps includes rapid collaborative development without hassles, continuous testing, continuous deployment and continuous monitoring and it can't work without a proper mindset in place, one that aims to allow everyone to collaborate to deliver value faster.
Sanjeev Sharma, DevOps SME, Agile evangelist and author at IBM, mentions continuous testing as an integral part of DevOps, in his blog on understanding DevOps.
Continuous Integration and delivery are both (almost) meaningless without continuous test. Not having motoring and hence, not knowing how the application is performing in production makes the whole process of DevOps moot.
Shirly says that DevOps aims to break the barriers between Dev and Ops. This also necessitates breaking the barriers between Dev, Test and Ops. Nothing stays the same for a traditional testing operation. Testing operations undergo a major change in a DevOps culture. Therefore, everything changes for testing. The tester's skillset, methods, the way they test, when they test and the way they plan and execute.
Well, having good tools, "good" processes and well-defined responsibilities are just one part of it. If we want to achieve effective testing in a DevOps world we need to establish the right mindset.
Shirly explains the elements of culture to make testing compatible with DevOps as:
- Collaboration - DevOps means collaboration among product owners, developers, testers, analysts, and architects.
- Testing is everywhere - If we want testing to be everywhere we need testing to be done by everyone.
Build something that has the quality of our brand written all over it. Start thinking of a QA as an enabler rather than a gatekeeper.
Marc Hornbeek, senior solutions architect of DevOps continuous test solutions at Spirent Communications, says in his blog that DevOps brings testing into the mainstream of development processes, and avoids the problems created by having “big-bang” testing left to the end of the cycle, such as release delays, and quality issues.
- Always working software - Working software means coding along with the testing.
- We are all in this together - The tester is not the sole person responsible for bugs in the end product, we are all responsible for the problem and the solution.
- Lean thinking – Reduce siloes, remove waste, identify bottlenecks, value driven thinking and continuous integration.
In Agile and DevOps culture we look at the entire production line, we do not calculate the cost of each unit separately, but instead look at the entire value flow from beginning to end.
Some added elements shared by Shirly are shared ownership, early feedback, visibility, and continuous improvement.
Shirly defines tester as an enabler, a skilled developer, and a skilled business representative. To make this happen, she gives following suggestions:
- Management’s active support and appropriate mindset
- Understand the fact that we need to react to a rapidly changing environment
- Always be on top of technological changes
- Highly skilled testers
- Highly skilled developers
- Hire team players
- Start even without the mindset fully developed because mindset is something that grows over time.
- Hire an Agile coach