
For the last few days, I've been working with Buildbot and Ant to improve the automated testing process for Ubiquity XForms. They are both seriously cool technologies in their own right, but together they are a genuinely awesome prospect. Buildbot is an automated client/server build system that enables remote builds to be triggered by events such as commits to source control or commands issued on an IRC channel. Ant is essentially a cross-platform, hyper-extensible version of make, although it is so far advanced from make that comparing the two feels slightly disparaging towards Ant. They have really captured my imagination because of the tessellation they share with the extreme programming practice of continuous integration.
XP advocates frequently committing to source control in order to minimise the likelihood of problems that arise when integrating significant changes. Clearly, for this to work, it is important to know that a changeset has not broken anything each time you commit. This is achieved by running the unit test suite. However, on some projects (and Ubiquity XForms is an example of this) there are additional, more thorough test suites that take significantly longer to run than the unit tests. As a developer, I often find myself wanting to take advantage of these tests so that I can ensure catching any problems as early as possible. But the cost of running these more rigorous tests on my own machine before each commit is prohibitive. This is where Ant and Buildbot come in.
After a period of the TDD red-green-refactor cycle, I can commit my changes, reasonably confident that all is well. Buildbot is then notified of my commit via a post-commit hook and responds by running the full suite of extended tests against the updated source code. If anything is broken, Buildbot can notify me right away and I can investigate the problem while I've still got the original changes fresh in my mind. And all of this happens on some other machine so that my own CPU is not affected while I continue working in the meantime.
| Attachment | Size |
|---|---|
| buildbot.png | 111.42 KB |




Post new comment