Continues Integration (CI)

Published on June 28, 2010 by Amir Sedighi

Introduction
This article have a quick overview of Continuous Integration, concepts and its current usage.
“Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. “ – Martin Fowler

Major Parts
When we implement a modification such as change, bug-fix or improvement thorough a software code, almost causes new bugs and failures that it could be better to find and fix them as soon as possible. The proper solution that has recommended by most of professionals is using of a continuous integration system within the development process.

Repository
The first and main tools of team development is the repository. All artifacts required should be placed in the repository. Repository keeps and maintain code versions and help us to track the development steps one by one. Repository also enables the team members to share their results together.

Build System
One of continuous integration disciplines is that, a single command should have the capability of building whole of the system. This means much easier and faster product generation.
There are many tools on the shelf that make us enable to build the application such as Ant and Maven.

Testing
Obviously we prefer to find bugs as soon as possible. Using automated testing the build system will be enable to run tests, find bugs and notify us automatically. In a team development everybody may commit partial cods within a day. Early building and testing is a key technique for finding bugs and incompatibilities. Build systems are able to run tests and find bugs immediately when the programmers commit the code or at least in a short time. The theory is that every commit should be qualified.

Advantages
Encourage using of source controls and unit testing that are the best practices of software development.
Early warning of code failures and bugs
Early running of unit tests.
Fast and easy building system.
Easy support for multiple branches of code.
It should be easy to find out who made the relevant changes to the new bug.

Posted in Software Engineering

Leave a Reply

Categories

Archives