Chapter 13. Continuous Integration

The principle of continuous integration applies as well to testing, which should also be a continuous activity during the development process.

Grady Booch et al., Object-Oriented Analysis and Design with Applications (Addison-Wesley, 2007)

With continuous integration, your software is proven to work (assuming a sufficiently comprehensive set of automated tests) with every new change—and you know the moment it breaks and can fix it immediately.

Jez Humble and David Farley, Continuous Delivery (Addison-Wesley, 2010)

Software entropy, like its counterpart in thermodynamics, is the principle that the degree of disorder in a system tends to increase over time. There may be no way out of entropy in physics—the second law of thermodynamics forbids it. Is there a way to stem entropy in software?

Our best current defense against the ruinous effects of code chaos is continuous delivery (CD). The term comes from the first principle behind the Agile Manifesto, which places customer satisfaction through the “early and continuous delivery of valuable software” as the highest priority.

A related term that precedes the Agile Manifesto by about a decade is continuous integration (CI), coined by Grady Booch and refined by Kent Beck, Martin Fowler, Jez Humble, David Farley, and others. In a team with more than one developer, the reliable integration of code is even more vital, and thus should be done frequently.1

For continuous integration to exist, there must ...

Get Learning Test-Driven Development now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.