DevOps is a tech industry game-changer. It speeds up the time between developing software code (Dev) and making the new code operational (Ops), saving time, money and resources along the way. But the DevOps process often overlooks a crucial step -- testing -- because normal testing requires time organizations don’t have.
Insufficient testing in the development process can produce buggy software that needs revisions and updates post-production. More often than not, these corrections require more time than it would take to test the code during the development process. Organizations currently waste about $300 billion a year fixing bad code -- a common outcome in development work that lacks adequate testing.
To address this issue, organizations need to adopt a “DevTestOps” mindset. This approach incorporates testing within the DevOps process to discover and correct code bugs before the software is deployed. With DevTestOps, your organization can retain the benefits of DevOps (e.g., speed and lower costs), while improving the quality of the code and the integrity of the development process.
A different approach for better results
The inclusion of testing in your DevOps process may involve an initial set-up investment. But verifying the code’s functionality, integrations, data integrity, security and performance in parallel with development activities identifies bugs early in the process, preventing project delays.
For Agile projects, it’s simply no longer acceptable for testing to lag a sprint behind development activities. Instead, organizations need to adopt a new, all-encompassing approach to development that integrates testing throughout the entire workflow. This includes the creation and maintenance of test environments that encourage development teams to frequently deploy builds, so software testers can test early and often. But continuous integration and code deployment can be cumbersome and time-consuming without the right tools. That’s where many organizations turn to automation, according to the latest World Quality Report:
- 19% of survey participants use automated tools to help decide what tests are really needed
- 11% said they integrate all test cases in the CI/CD pipeline
- 6% of respondents automate all tests
Your automated tests must be suitable for the speed of your DevOps process. It’s important to ensure your tests are modular and streamlined for speed, reliability, and maintainability. Test engineers should partner with developers to create automated tests with quick feedback loops, so automation is an integral part of the sprint. Automated testing is essential within your DevOps process to gain the desired speed without increasing error.
How to successfully implement a DevTestOps approach
A DevTestOps approach starts with internal conversations that educate and incentivize leaders and decision-makers. But it also requires proper research to implement a personalized strategy for your organization. When you’re ready to take the initial steps toward a DevTestOps approach, consider the following guidelines:
1. Change the culture through education. To create a DevTestOps culture, your C-suite and DevOps leaders must agree that quality code is just as much a priority as quick deployments. Work closely with IT and development managers to define a testing strategy that leadership can buy into. This strategy should include the types of tests (API or UI), your test coverage goals, a best-fit test automation framework, test stability, test data management, test results feedback and -- most importantly for the C-suite -- ROI and risk mitigation.
2. Rethink speed. Time is one of the biggest deterrents to testing, so it’s important to debunk the belief that speed and quality are mutually exclusive. Automated, short tests can deliver just as many meaningful insights as long-running, end-to-end tests, but short tests can do it in minutes, not hours. Identify your organization’s biggest hurdles and design a strategy that deploys tests (large and small) to overcome those roadblocks.
3. Automate strategically. While most companies prefer test automation, 50% struggle with applying test automation at appropriate levels, according to the 2019-2020 World Quality Report. Many existing automated tests tend to involve long execution times not suitable for short DevOps processes, so it’s crucial to invest in the right tools and skilled resources for your business. Appropriate test environments and test data are required for the stability and repeatability of automated tests. Consider building automated tests internally or through a third-party partner with expertise in test automation for DevOps.
4. Consider application integration. Today’s businesses have multiple applications inter-connected through a transaction flow. You must test all relevant integrations to ensure the integrity of the flow of data across your applications. For DevTestOps, this means your software and various applications’ data environments must be in sync so testing can occur both within and across applications. In many cases, service virtualization or similar approaches can help simulate application integrations for testing purposes.
For experienced IT teams who are steeped in DevOps practices, shifting to DevTestOps requires a change in mindset. By refocusing on software quality and the role that testing plays, you can shed light on the gaps that need to be filled to accomplish a fully streamlined workflow. Although this adjustment requires an upfront investment in resources, time and energy, DevTestOps supports the ultimate goal of our industry: to deliver high-quality software quickly and at a low cost. Inserting “Test” in the middle of DevOps can serve as a powerful resource for helping you achieve the quality goal.
Nancy Kastl has more than 25 years of experience as a consultant, manager, facilitator, and instructor in strategic planning, quality management, test management, measurement, project management, and process re-engineering. Her background began at Harris Bank where she was VP of Quality Assurance (QA) and participated in Harris Bank’s Total Quality Management initiative. Currently, she serves as the Testing Practice Director for SPR Consulting, providing onshore testing solutions and services.