What is Continuous Integration?
Continuous integration (CI) is a software engineering practice in which isolated changes are immediately tested and reported on when they are added to a larger code base. It was adopted as part of Extreme Programming (XP), which advocated integrating code into shared mainline several times per day. The goal of CI is to provide rapid feedback so that if a defect is introduced into the code base, it can be identified and corrected as soon as possible.
With Continuous Integration, applications are built from a very early stage in the development process. These applications are checked in by the developers at specific frequent intervals or on every change introduced. This effectively eliminates the need for integration testing and the cost associated with developers spending time on this phase. The enablement of frequent incremental builds and mandating a comprehensive automated testing process allows developers to detect problems early and ensure higher application quality.
- Integration bugs are detected early and are easy to track down due to small change sets. This saves both time and money.
- Enforces discipline of frequent automated testing.
- CI reduces integration problems and allows the developer to deliver the software more rapidly.
- Frequent code check-in pushes developers to create a modular, less complex code.
- Developer spends less time in debugging and gets more time for adding features to the product.