I'm currently the primary developer of the
Continuous Testing plug-in for Eclipse. I've been asked several times to explain the difference between continuous testing and the CruiseControl tool for continuous integration. Here's how I explained it recently:
What is the difference between continuous testing and cruise control?
Cruise control is a software package that implements the process of continuous integration. In
the most famous article on the subject, Martin Fowler calls continuous integration"a fully automated build and test process that allows a team to build and test their software many times a day," and discusses how the CruiseControl framework was built and used at ThoughtWorks to aid in continuous integration. The idea is that once the build and test process is automated, the best way to make sure that it's run "many times a day", and to get the benefits of doing so, is to make an automated daemon responsible for running through the process on every check-in to the repository.
At another point in the same article, Fowler states "Developers typically run some subset of the unit tests with every compile as they are writing the software. This actually speeds up the development work since the tests help to find any logic errors in the code you're working on. Then, rather than debugging, you can look at the changes since you last ran the tests. Those changes should be small and thus it's a lot easier to find the bug." The idea of continuous testing is that the best way to make sure that the unit tests are run "with every compile", and to get the benefits of doing so, is to make an automated daemon responsible for doing so.
In short, continuous integration and continuous testing are both good ideas that require either developer discipline or automated support.
CruiseControl automates continuous integration to catch errors quickly:
- for an entire team
- on a shared server
- several times a day
Our plug-in automates continuous testing to catch errors quickly:
- for a single developer
- on the developer's workstation
- several times an hour, or more