This started with focus on applying hardware testing techniques to software testing. Namely with regards to reusable components (citing koders.com and krugle.com). The components in question seemed to largely be toolkits that they use in testing including
Beyond the tools mentioned, the bulk of the presentation on a system that they built for generating junit test cases for either C++ or Java logic from excel sheets (the logic translation was done with ANTLR). The test spreadsheet was pounded into XML then into Java then run as tests. When asked why they don’t just interpret the spreadsheet directly they gave an answer regarding the DoD’s requirements for transparency. The whole thing seemed horribly static to me, but I suppose if your client is our government you probably have to jump through a variety of hoops.
This talk presented a few things about Groovy that I hadn’t heard yet. First that Groovy supports TestNG out of the box, and also that most Java code can run in the Groovy interpreter without modification. The only java construct which Groovy doesn’t support is inner classes (I’m guessing cause they look like closures).
Andres showed a number of the tricks Groovy is capable of such as closures, mocking and stubbing. It seemed pretty useful that Groovy can also stub existing Java classes and also can masquerade simple hashes as java objects, providing a pretty flexible mocking situation. The syntax was something like:
The proxyString object will now pass for a String so long as you don’t try to call any methods other than startsWith.
According to Andres, this can also all be dropped into an existing JUnit or TestNG infrastructure by means of eclipse and maven plugins. So I’m thinking my next free-time project might be to rewrite some of comcast.net’s unit tests in Groovy to see just how well it will blend. He also discussed using Groovy with DbUnit for testing databases as well as using it with Easyb for behavior driven development. And also one of participants brought up Tellurium, which apparently uses Groovy to drive selenium.
This was definitely the best overall talk so far. I still don’t think I could support Groovy over Ruby for general purpose development, but it seems to have a solid home for testing Java applications. I look forward to trying this out on my work projects in the next week or two.
Google made the smart move of providing lunch at the conference so we could all stay together. I sat with developers from a number of different companies and picked up on some cool technologies like ModelJUnit and also got a demo of a unit test correlation webapp that Todd Wells was working on. I even got an introduction to the micro-finance site, Kiva which I could definitely see throwing some money at.
I hope you’re enjoying my GTAC 2008 overview so far. I expect it will take about 3-4 more posts to get it all up here. Feel free to comment if you’d like to see more or less of my own personal commentary, or for any other reason.