I often get asked what is going to be the future of testing discipline with current shift to DevOps. To answer this I would like to briefly talk about the DevOps world. DevOps allows Development and Infrastructure Operations work hand-in-hand and has removed the boundaries of development having to complete a full lifecycle for the changes to be deployed.
The shift to DevOps is likely to reduce the risk of unsuccessful deployment in production. It could provide more assurance around successful deployment of code, performance at peak load, reduce vulnerabilities of attacks, etc. This is accomplished through all teams (Development, Testing, Ops) working together with one goal – Best quality application and good User experience. DevOps is an evolution beyond Agile – Agile stood for parallel development and test; Devlops focuses on Continuous Integration, Continuous Testing and Continuous delivery.
DevOps is a revolution not only for Testers but for Development and Operations as well. All three disciplines come together to make DevOps as an emerging career. Developers would integrate more with Testing and operations; Operations would integrate more with Developers and Testing and Testers would integrate more with Development and Operations. Each has a role to play! There are multiple DevOps patterns.
• Left-to-Right – where System thinking extends from Left (Development) to Right (Production)
• Amplify Feedback Loop – Left to Right and Right to Left – that helps create production feedback into development
• Continuous Experimentation and Learning – embeds continuous development into IT operations and / or embeds IT operations into development.
DevOps approach encourages the developers to understand testers’ job and testers to understand developer’s Job.
So, what does DevOps have in store for testing careers? Would testers sieze to exist?
Testers have evolved over different eras and have moved away from manual black box testing to automation. DevOps is yet another shift that testers are coming to grapple with. Testers would adapt to this shift and fit in. The new testing skills would involve not only test automation, but also unit testing, test driven development, Infrastructure Automation, API testing as a part of DevOps. So it is going to be an enriching and exciting career ahead for testers.
Testers need to extend their automation skills into Infrastructure automation for application deployment. Infrastructure automation tools provide a DSL (a simpler higher level language) for dealing with infrastructure. Infrastructure automation scripts are declarative at a high level. Some of the popular tools include Jenkins, Chef, Puppet from Puppetlabs, Ansible, IBM Urbancode, Electric-flow from Electric Cloud ). By using these tools, one adapts the notion of coding on infrastructure and takes a step closer to dev-ops. Boundaries between coders and deployers are blurring.
Testers in new world would handle automated code deployment, be able to code in simple high-level language and not technical scripts coders use. Deployment can be orchestrated from a code deployment tool. The advantage such tools offer is end-to-end traceability across source and artefacts. There is a vast landscape now of deployment tools and there is no risk of proprietary technologies. These tools also offer reusable, community authored, peer-reviewed code that can be easily adapted.
These tools encourage adoption of version control, continuous integration, modularity and reuse.
To conclude, what is the driver for DevOps evolution? It is all for good quality application deployment, so role of testers is even more important. DevOps brings a revolution in testing world where a testers has to come out of the mindset of concentrating only on Black Box Testing, upgrade and uplift, and thrive in the new exciting world of DevOps.
To read more about the evolving world of DevOps , do read the World Quality Report 2015 – http://expert.do/1M7uOsI