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 Software Development Fundamentals
Related Q&A from Gerie Owen
As a junior tester, I think learning scripting languages could make me more valuable to my team and enhance my career. But how do I pick the ... Continue Reading
DevOps teams use chaos engineering, but at what cost? Learn how this testing method secures applications in ways that traditional testing can't. Continue Reading
You want to attend a software testing conference, but your employer said it's too expensive. Here are some ways to improve your chances to attend. Continue Reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.