Are you ready for continuous delivery? This article outlines three prerequisites: automated testing, infrastructure as code and a staging environment.
Success with continuous delivery (CD) depends on four prerequisites. In the first article in this two-part series, experts discussed the importance of a well-established iterative development process. In this article, those experts focus on three practices: automated testing, infrastructure as code and a staging environment.
Software test automation isn’t an “all or nothing” affair. Most teams automate some steps and rely on manual testing for others. But continuous delivery demands a deeper commitment to automation. Why? Because, by definition, testing must take place continually, and the only way to manage it cost-effectively is through automation, said Tom Poppendieck, co-author of The Lean Mindset. As each increment of code is released, tests kick off automatically, making sure not only that new code works, but that it integrates properly with the larger codebase. “When software testing is automated at multiple levels, the risk and cost of making changes becomes dramatically cheaper,” Tom Poppendieck said.
The more you automate the test process, the easier it is to reach the goal of delivering software continuously, said Carl Caum, a prototype engineer at Puppet Labs, which sells configuration management software. He is not suggesting that software pros eliminate all manual tests, but said they should move steadily toward deeper and deeper levels of automation. “You start with acceptance testing. What defines success in our software? Write down your acceptance criteria first, and then automate that testing process.”
The key to success is automating as you go. Often that means conducting manual tests; then, where possible, turning manual steps into automated ones. He offered an example: “You do some manual, exploratory testing. When you come across a workflow that requires the same four steps every time, automate it,” he said. “The first time it’s exploratory, second time it’s a pattern, and the third time it’s automated.”
Continuous delivery requires automating most test procedures, said Stephen Forte, chief strategy officer for mobile tool maker Telerik. “But at the end of the day, for public-facing applications, you want to have a human being look at the screens. Does the layout work? Are there any spelling mistakes?” These are things automated testing can’t catch, he said.