Agile teams will face many technological challenges as they implement continuous delivery. Continuous delivery requires developing a methodology or approach through which new code is ready to be deployed to production at any time. Continuous delivery is not continuous deployment. Continuous delivery is producing code that is ready for deployment; the code doesn't have to be released continually.
The most complex challenge that Agile teams face as they implement continuous delivery is the need to achieve continuous integration. Continuous integration is a process in which developers integrate small pieces of their code into the code base frequently. Obviously, this requires continuous testing.
To achieve continuous testing, a build server is usually used as a repository to collect the code as individual developers commit it. Then, the build server can automatically smoke test the code before formal testing. Unit tests and simple integration tests can also be automated by the build server.
When continuous integration is achieved, code is automatically regression tested as soon as it is checked in by the developers. This means that each change is tested against the entire code base. This is the key to continuous delivery because continually tested, integrated code is ready to be deployed to production at any time. On the developers' end, if any of these automated tests fail, the developer gets feedback right away, which makes errors easier to find and fix.
Continuous integration poses unique challenges for testers because it not only requires a test harness, or a suite of automated regression test scripts, but also those automated scripts must be constantly updated as new features are delivered.
Automated configuration management is crucial to achieving continuous integration. Automated configuration management ensures that the development, test and production environments are almost the same so that regression and integration related defects are easily found.
Finally, application performance management becomes critical as code is deployed to production continually. Performance must be monitored in production to catch performance issues before the customer does.
Find out the business benefits of continuous delivery
Uncovering the technical advantages of continuous delivery
Why you should use continuous software delivery for mobile
Dig Deeper on Topics Archive
Related Q&A from Gerie Owen
Web services and APIs aren't the same -- or are they? How do web services and API testing differ, and what does each type of test aim to achieve? Continue Reading
A script-based tool has replaced a daily testing exercise on some code. Is it simply an automated test, part of a test automation strategy or even ... Continue Reading
Developers and testers strive to create quality, reusable code to deploy apps faster and keeps users happy. But what metrics should they track to ... Continue Reading