What is Continuous Integration?
According to Continuous Delivery, Deployment, Integration and Testing: Deciphering DevOps Terminology, Continuous Integration (along with Continuous Testing) allows for Continuous Delivery (and therefore Continuous Deployment) by regularly integrating every new feature that gets developed back into the master code branch.
Essentially, Continuous Integration creates a regular feedback look so that the master code branch picks up any changes and merges those changes with the existing code. It creates an iterative process in which changes get added in piecemeal as they’re ready, rather than all in one big bang. This process not only allows for changes to get added in faster and more often from various contributors, but it also makes it easier to identify the source of any problems should an issue arise. As a result, merging changes with the master branch as often as possible and confirming those changes work by regularly running automated tests are critical to a smooth continuous integration environment.
Continuous Integration and Continuous Testing
Continuous Integration and Continuous Testing go hand-in-hand: an automated process gets the latest batch of changes, builds the applications, then tests it. This testing typically focuses on regression testing, which provides the team fast feedback on whether new/modified code broke existing functionality.
While Continuous Integration is primarily a tool-driven activity and Continuous Delivery is a tool- and team-driven activity, Continuous Testing involves tools, teams, individuals, and services. Building and integrating code changes is certainly important. However, if the automated delivery process cannot identify how changes impact business risk or disrupt the end-user experience, then the increased frequency and speed of Continuous Integration and Continuous Delivery could become more of a liability than an asset.
Continuous Integration Resources
- Continuous Integration – Martin Fowler’s industry-standard work that provides a quick overview of Continuous Integration, summarizing the technique and its current usage.
- How Can Testers and QA Leaders Get Familiar with Continuous Integration and Delivery? – Paul Merrill shares his thoughts on how testers and QA leaders can get more familiar with continuous integration and delivery principles.
- From Code Drop to Smoke test in 12 minutes: Automated Testing and CI – Learn how testers can provide developers quality feedback within 12 minutes after code check-in.