I've been pretty quiet lately, and that's not likely to change much in the short term. Anyway, I've got a few things I'd like to point out from the stuff I've stumbled upon in the last couple of days going through my blogroll.
Stories
Jeremy Miller has posted a couple of nice little stories. First, he humoured the community at large by telling about a rather interesting symbiosis of C# and T-SQL (stored procedure) code. I especially enjoyed the part where he writes, "This particular system is the subject of a case study/testimonial on MSDN as an example of all the wonderful things about .NET". Another past experience story Jeremy blogged was about the dangers of lack of communication, among other things.
Anyway, while Jeremy's stories were modestly entertaining but nothing special, Johannes Kohl gave me some good old ROFL with his blog entry about user profiles and exploratory testing. The part where the ROFL started was this sentence: "The developer thought I was insane when he saw me rocking my desk with my knee while typing to repeat the bug." Seriously, I couldn't stop smiling for the rest of the rather lengthy blog entry. That's a good story. You should read it. You really should.
Elsewhere, Ron Jeffries told the bowling game story again, this time experimenting with programming by intention. I got pretty confused about what he meant with "TDD by Intention" since I've always considered programming by intention as being one of the core tenets of TDD -- a main contributor to TDD's positive influence on design. In fact, I ran a TDD training for some 25 people just this week saying so (among other stuff, of course). It turns out that Ron didn't mean to imply that TDD wouldn't involve programming by intention. He'll probably adjust the wording in the article. Or not. Maybe.
Oh, and Shane Duan from TW has written about Fitnesse in a post titled Joy and Pain with Fitnesse. Nothing special in there but he's managed to describe the three basic Fixture types of FIT in such a simple way that I'll probably have to quote him and turn my 5-page FIT fixtures overview slide set into a 4-page FIT fixtures overview slide set.
I also find it interesting that Bill Wake is also tapping on gamasutra. I've been subscribing to the newsletter for some months, although I've only read a couple of articles regarding how people do automated testing in their game development projects. As I've mentioned before, the domain is interesting even though it's definitely not my game, so to speak.
Colors
I decided to join the new colormodeling Yahoo! group that David set up. I did that with the not-so-secret agenda of maybe learning something or perhaps getting inspiration to actually try it out. I've got a colleague that's quite a Coad fan but so far he hasn't managed to infect me.
David also got me thinking with his posting of some matrix tools for evaluating an organization in terms of individual and tribal value and security. I found the matrices interesting but there really wasn't an exact match between the quartals and my current organization. I might pull up these things again in a few weeks when I'm part of another organization. More on that later.
Unit testing
There's a couple of new IDE plugins related to unit testing that I at least haven't seen before. Someone has put together Coverlipse, a code coverage tool tightly integrated into Eclipse. Looks potentially good. I'll have to see whether I'll actually get to use it -- I'm not too big a fan of coverage metrics in general (although it's a useful tool if you use it properly). The other one is a JUnit test runner plugin for BEA WebLogic Workshit. Initial thoughts? The huge green bar looks nice but I'm afraid the tool might be almost as difficult to use as the rest of the particular IDE...
Talking about JUnit, you've probably already read some blog entries about the TestNG team digging into JUnit4 source code which is available in CVS. So that's not news. Anyway, you may have not seen this post to the JUnit Yahoo! group where Kent mentions that "we now have a release that we think can be used to write production tests".
Ah, I also started working on a little Eclipse plugin that visualizes your TDD rhythm on a running timeline, inspired by Frank Westphal's "hack" to JUnit itself many, many months ago (JUnit 3.8.1 is not really what I'd call extensible, at least if your intention is to hook into an existing TestRunner instead of creating your own). I wrote a working prototype this past Sunday for this week's TDD training. A few hours of head-banging and browsing eclipse.org just so I could point at the projector screen and say after the live demo, "see, we really ran those tests quite frequently!" Definitely worth the effort :) I'll open the source and upload the distributable when I've rewritten the plugin from scratch, test-first (it really was just a prototype -- I had to learn how to write such an Eclipse plugin -- and the design is far from satisfactory).
Finally, a word about mock objects. Someone blogged about NMock2 and how its syntax has improved (it now looks like that of jMock). While it's nice that the code begins to read like plain English, there's some things I'd definitely change a bit. For example, I'd rather express this piece of code:
Expect.Once.On(item1).GetProperty("Price").Will(Return.Value(100));
as:
Expect.Once.On(item1).GetProperty("Price").WillReturn(100));
Maybe there's a reason for separating those bits and pieces. I don't know. Frankly, I don't care too much. In the end, having to write a few characters more is trivial compared to certain other challenges we face in our line of work.
Ok. I think that's already too much of time spent blogging for today. I'll try to do this again soon.







