I attended CITCON (Continuous Integration and Testing CONference) in Brussels last weekend - and just like last year, it was great! It's an expertly facilitated open space conference by Jeffrey Fredrick and Paul Julius, through their Open Information Foundation. I think I enjoyed it even more this year than last. It really is an exellent conference. I'm already looking forward to the next one.
Squirrel proposed a session on mutation testing; he wanted to demo Jumble and suggested that I should say something about Jester. It turned out to be a very popular session - it's still an idea that people are interested in.
In a nutshell:
* Make some change to your code
* Run your tests
* If the tests pass then either you are missing a test or you have unnecessary code.
It's a long time since I've tried to use Jester - I haven't worked on it for a long time - I checked with sourceforge and the last release was February 26, 2005. I spent an hour or so before the session, preparing a demo. It was quite horrible trying to get it to work.
After finding out the level of interest, and being reminded of the difficulty getting Jester to work, I'm intending to release a new version of Jester - probably a fork because I've handed over project admin to Elliotte Rusty Harold and what I've got in mind is a simplification that has some disadvantages as well as some advantages. It'll be simpler code, simpler to use, but even less efficient. For me, making it simple to use is more important than the performance.
Since Jester was released, there have been other implementations of the same sort of thing. Squirrel demoed Jumble, which he was keen on. An ex-ThoughtWorks colleague of mine, Stacy Curl, wrote "ajester" which, like Jumble, used byte code mutation rather than source mutation - but I don't know if he ever released it - I can't find a release package. Michael Nyika wrote Grester - a Maven2 Plugin for Jester. There's also a dot net version of Jester, called Nester. Another mutation testing tool is muJava which apparently now has an eclipse plugin. There is an eclipse plugin for Jester, but I'm afraid it never quite got properly released (sorry).
CITCON is about continuous integration as well as testing. It's very clear from CITCON that cruisecontrol is still by far the most used continuous integration server. There are dozens of other continous integration servers available but none of them have much "market share". I was suprised by how few people had even heard of TeamCity because it seems to be becoming trendy with the London XP crowd.
The second most used continous integration server by CITCON attendees appeared to be Hudson demoed by Eric Lefevre which looks nice enough but still doesn't do what I want.
The only continous integration server that does what I want is build-o-matic - because I wrote most of it! I did a demo which I think went OK - I think the feature people like the most is putting the pictures on the results page. Nat Pryce wrote a plugin called team-piazza that does something similar for TeamCity.
More on the latest developments of build-o-matic in a future post.
Posted by ivan at October 28, 2007 1:35 PM