Continuous Integration

What is continuous integration

Continuous Integration (CI) has a particular influence on the organisation of the unit integration tests. It is a way of working in which the developers regularly integrate their work, at least on a daily basis and increasing to several integrations per day. The integration itself, consisting of combining the units and compiling and linking into software, is automated. Each integration is verified by executing the automated tests in order to find integration defects as quickly as possible. The method minimises the chances of regression faults. CI ideally lends itself to be comined with Test-Driven Development, requiring a development environment that supports automated integration and testing.

Why continuous integration

Initially, CI was started on the developer's local development environment to perform a (regression) test before committing new or altered code to the mainline. This already tested code was less likely to break the mainline code. Later on this was centralized in order to perform unit tests using build servers, testing or checking all code that got committed to the mainline. Nowadays the build servers do not only run unit and integration tests but also run additional static and dynamic tests, performance- and security checks or format documentation from the source code.

CI makes it possible to have a mainline that is in such a state that it can be deployed almost instantly.