The recent industry report estimated worldwide software failure costs to be USD 1.1 Trillion. A 2018 study by the Consortium for IT Software Quality maintained that for the US alone, the cost of defective software was USD 2.84 Trillion. These relative costs of fixing errors post a software release is unarguably higher than if they were uncovered during the design phase.
The 2019 Accelerate State of DevOps report maintains, “DevOps will eventually be the standard way of software development and operations.” This is indeed true as enterprises acknowledge three factors: increased demand for superior quality software, faster product launches, and better value for tech with optimized software delivery performance. However, in today’s competitive landscape, is this enough to succeed?
Enterprises need something extra—the strategic integration of QA (Quality Assurance) with DevOps. While DevOps brings speed, innovation and agility, its success lies in adopting the right QA strategy.
Devising the optimal QA strategy
The success of Dev-Q-Ops depends on a robust QA strategy and essential best practices to boost rapid development and deployment of DevOps applications.
Earlier, the interaction between developers and testers was minimal, and both groups relied largely on their interpretation of the written / implied requirements without largely validating their understanding amongst themselves. Consequently, this led to too many back and forth arguments, counter-arguments that compromised, not just the quality, but the speed of product deployment too.
Today, most good DevOps implementations include strong interactions between developers, rigorous, in-built testing that comprehensively covers every level of the testing pyramid–from robust unit tests and contracts to API tests and functional end-to-end tests. However, the shifting of lines between what is ‘tested’ by the testers and what is automated by the developers often blurs the test strategies and approaches; thereby according a false sense of good test coverage.
Testing, both automated and manual, are continuous processes that remain active throughout the software development cycles. A definite change in mentalities is required to adopt continuous testing and continuous delivery. The Dev-Q-Ops culture is expected to lay the foundations for this and serve as the much-needed value add to your business.
It is then imperative to introduce a balance and adopt a QA strategy that not only ensures the right coverage and intent of testing, but also leverage automation to the maximum extent. The QA strategy should always be assessed on whether it helps attain vital DevOps metrics. Some examples of how the metrics can be effectively improved are:
- Lead Time for Changes, where for example, the approach is on early identification of defects through testing early; leveraging the test pyramid, and undertaking improved impact analysis leading to better identification of ‘necessary’ coverage.
- Deployment Frequency through facilitating the right automation spread throughout the test pyramid, deploying improved test environment and test data management and initiating parallel testing through rapid environment deployments and teardowns.
- Time to Restore Services through shared monitoring of operational parameters and ensuring the ability to narrow down on change and impact, and thus regression, by leveraging AI.
- Change Failure Rate by ensuring for example, risk identification, customer experience, and touchpoint testing and monitoring customer feedback and usage.
Effective execution of Dev-Q-Ops also enables Continuous Testing (CT) to easily zero-in on risks, resolve them, offer feedback and enhance quality.
Therein lies the importance of a structured QA strategy. It not only lays the foundations for a consistent approach toward superior quality but also enhances product knowledge while alerting enterprises to questions that would otherwise have remained unanswered. So, to release high-quality products without expensive rollbacks or staging, it is imperative to add the ‘Q’ to your DevOps.
In conclusion, new-age applications are complex. While DevOps can quicken their rollout, they may fail if not bolstered by a robust QA strategy. QA is integral to the DevOps process and without it continuous development and delivery are inconceivable.