DevOps is a practice that emphasizes the collaboration and communication of both software developers and other IT professionals. Many leading companies are adopting DevOps within their organization as a strategic capability to provide competitive advantage.
DevOps’ adoption is rising, although Gartner say that just 25% of Global 2000 organizations are predicted to employ a DevOps strategy in 2016. Since DevOps has been around for the better part of a decade, this implies that there are challenges—perceived or real—in the way of adopting a strategy with such clear benefits.
Testing within DevOps
For testers, even with upfront thinking and rigorous testing, there must be an efficient, largely automated pipeline in place to take an idea from design through to deployment and production. This is where DevOps comes in, and is discussed in an article by testing guru and consultant, Paul Gerrard, “DevOps and Testers: An objective viewpoint”.
Here Paul describes how the primary goal of speeding up the deployment and implementation of software is achieved, and the most obvious outcome is a reduction in the time taken to move from idea to production. If this idea has further been successfully validated early, and has then been faithfully translated into tests, it stands to reason that valuable software will be delivered.
Shift Left to support DevOps
Testers are under great time constraints and pressure to deliver a well-tested application earlier, and with no defects to make it into production. However, they are often faced with ambiguous or incomplete requirements and an impossible number of tests to complete, so that the manually written test cases do not cover all possible paths and defects make it into production.
For testers to achieve one of the central goals of DevOps – delivering a quality system at speed – the onus is on gathering constant feedback and establishing upfront what the desired functionality is. This requires the constant analysis of information from numerous sources, including user feedback, written requirements and change requests, as well as analysis of production sources such as system data to gain a better understanding of how software is actually being used.
One motivation for validating ideas earlier and more regularly is that it works to identify miscommunication before it creates time-consuming, costly rework. This approach reflects part of a general move towards “shift left” testing, as described in another article by Paul Gerrard – “Surviving Shift Left as a Tester”.
In essence Paul describes how, “shift left” is about bringing thinking earlier into the development lifecycle. In other words, it is about thinking upfront, and involves a process of testers working earlier to challenge the sources of knowledge that inform both design and development. In this way, the likelihood that the design will faithfully reflect the user’s desired functionality is maximized.