Why Software Testing is Key to DevOps

DevOps speed without embedded testing leads to faster delivery of defects, not better outcomes. This article shows how integrating automated quality gates, from smoke to security testing, helps teams ship both faster and safer.

Coveros Staff

February 16, 2018

One of the major reasons organizations adopt DevOps practices is to accelerate delivery of software to production. This includes deploying more frequently and reducing lead time.

However, many organizations fail to include quality components in their practices. This leads to organizations delivering code faster, but unfortunately, that code is just poor. Continuous deployment without quality is just delivering continuous bugs to your customers.

If this sounds like your organization, software testing may be the missing component to your DevOps program. Top performing DevOps organizations, like Netflix, Amazon, and Etsy, utilize automated regression, performance, load, and security testing to ensure software quality is built into their DevOps pipelines and ensured by being forced to be run on every build. For Netflix, this allows software to be committed, tested, and fully deployed to production within sixteen minutes!

If your organization isn’t as large or doesn’t require as rapid deployments as those companies, automated testing in your DevOps pipelines still provides significant benefits. Even a small amount of automated regression testing can ensure basic tests are always run on a build. Typically, organizations start by building an automated smoke test. This smoke test provides a sanity check on a developer’s code. This can not only reduce some of the overall manual testing effort by the testing team, but also ensure effort isn’t being expended on builds that don’t meet minimal quality standards.

More robust automated testing suites can result in even less manual testing, in addition to better-focused exploratory testing efforts into high-risk areas of the application, including interfaces, misuse cases, and the most important assets to your system. While not every test can (or should) be automated, spend your critical resources wisely by only focusing manual efforts on the things that really require their attention.

Most organizations today use some level of automation when looking at performance, load, and security. Leveraging those existing capabilities into your DevOps pipelines ensures that your deployments are not held back by independent groups late in the software lifecycle and they aren’t an afterthought when the application is already in production. This has immediate benefits, such as reducing cyber security impacts on your applications and their data by ensuring critical vulnerabilities are identified earlier in your software development lifecycle and aren’t deployed to production in error.

Pulling software testing into your DevOps practices doesn’t have to be difficult. You can start by bringing your existing testers and security engineers into your planning sessions. Next, ensure each phase of your pipeline has a quality gate and software quality criteria that should be met in order to move to the next phase of your pipeline. Last, identify gaps between your quality goals and reality, and ensure you prioritize efforts into the activities that provide the greatest return on investment—those that are either run with the highest frequency, reduce the greatest software quality risk, or reduce the biggest bottlenecks.

These simple steps will lead to not just delivering code faster, but delivering better code faster.

Coveros Staff

Coveros Staff

This post represents the collective insights of the Coveros team. Our staff consists of software experts who bring deep experience in secure agile development, DevOps, testing, and software quality. Over the past 20 years, Coveros has trained more than 30,000 professionals and worked with half of the Fortune 100 companies on mission-critical software development challenges. We draw on this extensive experience to share practical insights, proven strategies, and real-world solutions that help organizations build better software faster and more securely.