CI

by Buddy Lindsey on January 4, 2008

CI stands for Continuous Integration it is a way of constantly and consistenly testing your application end-to-end while in the development stage to limit bugs. Wikipedia defines Continuous Integration as:

For small projects, developers run all their unit tests, and integrate. Large projects often require a longer build and test cycle, so these projects use Automated Continuous Integration. A server process or daemon monitors the version control system for changes, then automatically runs the build process (e.g. a make script or Ant-style build script) and then runs test scripts (e.g. JUnit or NUnit).
In many cases the build script not only compiles binaries but also
generates documentation, website pages, statistics and distribution
media (such as Windows MSI files or RPM files).

I read this and kind of go WTF? A while back I was able to persuade Scott Reynolds to post "Why Use Continuous Integration – Beginner's Overview".  Here is a quick blurb of his post.

At root, CI is a tool to automate build and build-related tasks.  A
typical scenario is some CI "server" that checks the source repository
for changes, gets latest, makes a build, and reports success/failure. 
If you are running automated tests, CI would run them for you with the
build, and would include the output in its report.  If you are running
code metrics or static analysis like NDepend, FxCop, and so forth, CI
would run those for you post-build and include the output in the
report.  Finally, you could configure your CI process to deploy
newly-built code to some location, possibly for QA purposes.

So basically from these two sources it is a methodology of testing your application end-to-end to help make your application a more solid product by the end. With CI it allows you to see where what breaks on the application as a whole instead of your small subset of unit tests that you are hopefully writing using TDD.  As I progress through programming CI looks more and more appealing for me to use from a fun-setup-a-server-to-play-with-something-new way and to help me write better software. I suggest checking it out if you don't currently use it. 

For another resource on getting started with Continuous Integration check out this altnetpedia page:

Continuous Integration 

Related Posts:

Was this Helpful?

If you found this article useful you might find others useful as well. Please browse the archives and subscribe to the RSS Feed to stay up-to-date.

Leave a Comment

Previous post:

Next post: