Continuous Integration (CI) - Tools for Improving Engineering Process


CI is one of the modern software development practices for applying quality controls in small pieces.  CI involves automatically building and testing an application at frequent intervals on a dedicated integration server.  Developers regularly commit small updates and are notified rapidly if their changes cause the build to fail.

Core activities involved in CI:
  1. Maintaining a code repository
  2. Committing the code to the baseline everyday
  3. Automating the build process
  4. Deploying the build to test environment
  5. Making the build self-testing
  6. Reporting the build status to the team
Advantages:
  1. Reduces the risk of integration issues appearing late in the project
  2. Improve communication between team members
  3. Reduce the time needed to prepare a release
Most fundamental feature of CI tool is the automatic build cycle.  The CI tool, either at a scheduled time or whenever any changes are detected in the source code repository, fetches the source code latest version or attempts to build and test the project.  If the build fails, developers can be notified in any number of ways:  email, instant messaging etc.

Other features of CI tools that need to be considered before picking it:
  1. Version Control System Integration – Does CI tool support required version control system (e.g. SVN)?
  2. Build Platform - Does CI tool support required build tools (e.g. Ant, Maven)?
  3. Command Line - Does the CI tool support the ability to run a program from the command line?
  4. Feedback & Reporting - What are different ways feedback and reporting supported by CI tool? Is this matching with yours need?
  5. Labeling - Does the CI tool support ‘labeling’ of the build?
  6. Project Dependencies - Does CI tool support project dependencies?
  7. Extensible - Can CI tool be extended using plug-ins?

Some Popular Open Source CI Tools:
  1. Cruise Control
  2. Continuum
  3. Luntbuild
  4. Hudson
  5. BuildBot

List of other continuous integration tool -
  1. http://www.continuousintegrationtools.com/
  2. http://en.wikipedia.org/wiki/Continuous_integration
  3. http://en.wikipedia.org/wiki/Comparison_of_Continuous_Integration_Software
  4. http://www.ibm.com/developerworks/linux/library/l-buildbot/index.html?ca=dgr-lnxw97Buildbotdth-LX

Comments

Popular posts from this blog

Performance Test Run Report Template

Bugs Management in Agile Project

Understanding Blockchain