Testing, Agile and Devops: How does it all jive?

Devops is slightly nebulous phrase because it's a mix of technologies, methods and roles.  In short, it means that operations works tightly with development during the development cycle and beyond.  Think of it as “shifting right” in the same way that many people talk about shifting quality left in the development process.

Some of the technologies are 
While there are many parts to Devops methods, the most interesting are:
    • With containers you can treat configuration like code -- storing the configuration as scripts in a revision control system.  So, the container configuration can be static and tracked.  This enhances security as well as making the configuration more transparent.
    The Devops role, is someone who specializes in these technologies. Also essential is someone who can work with the team and help interface with QA, security, development, operations.  The ultimate idea of Devops is embedding someone representing operations in the development team.

    So, how does it all come together?  Agile methods mean that you have potentially deployable code at the end of a sprint. With Devops that can become actually deployable. But, devops also helps make deploying to production less scary:
    • The deployment is automated.
    • SDETs have written automated regression tests to check the existing system.
    • Containers allow you to run multiple test deploys in parallel, testing multiple configurations.

    • Security configuration can be built in to the container scripts.
    Since automated tests, deployment and configuration are all code, they can be revised, tested and run automatically often.  This allows QA to focus during a sprint on the new functions, including end-to-end and user experience.