There’s so much swirling around in my brain from a whole week in Chicago at Agile 2009. Let me start with my recollections of the Agile Alliance Functional Test Tools workshop. Jennitta Andrea chairs this effort, and Elisabeth Hendrickson facilitated this meeting.

The facility was great, plenty of room and good connectivity, and had a nice view of the Sears (Willis) Tower and a sliver of lake!

The workshop was all Open Space, so we started out by planning the sessions. 3 timeslots, 4 locations, though there ended up being only 11 sessions. One of the first sessions was lightning talk demos of various tools – Canoo WebTest, Twist, Cucumber, Robot Framework and SWAT. (Not to say that Watir and Selenium were ignored – we were just already familiar with those). I was impressed by Robot Framework, an open source tool whose developer is Pekka Klark. It has a lot of flexibility. It uses a tabular format similar to FitNesse except there is only one type of table. You can do keyword driven, data driven and even BDD style tests. It also takes command line arguments. It lets you have internal and external libraries such as Swing.

Mike Longin (who works for the same company I do) did a great job demo-ing both SWAT and UltiFit (the latter is not open source, but as there was interest in it, Mike may undertake that task). There was a lot of interest in SWAT, nobody had seen it before and I think they were particularly impressed by the IDE.

One of the other morning sessions was how to get Cucumber to work with .Net. Of course you can run Cucumber tests on the browser no matter what your app language, but if you want to test in the same process as your app code, you need some bridge. After a lot of discussion of things like Iron Ruby, someone had the idea to use the Slim protocol between Cucumber and .Net. Aslak Hellesoy, the Cucumber developer, thinks this idea may have legs. I have some photos of the diagrams they drew and will upload them here when I get time.

Paul King, one of the WebTest contributors as well as the main Groovy developer, proposed doing more mixing and matching of testing frameworks/drivers/utilities/tools. He had a nice graphic showing what is available. We all agreed there are enough test runners, and the developer community should focus on solving new problems. Gerard Meszaros created a spreadsheet showing all the tools along with the features and requirements people might have for their test framework/drivers. Some of us got together in an afternoon session to tweak the tools spreadsheet and Gerard posted it on Google docs so that tool developers/users can add to it and fill it out. This is the start of a great resource both for users looking for the right tool to developers who want to know what they might be able to build on or adapt.

One of the afternoon sessions was about how to make browser tests run faster. I didn’t sit through the whole session (I was trying to get a little of all the sessions, I couldn’t pick just one) but Aslak explained how neural networks work and how that might be applied to running tests. The idea is to “train” tests to be smart about what tests to run first. For example, if File XYZ is checked in, the tests know that the last two times that file was checked in, tests A, B and G broke, so it runs those tests first. Built-in risk mitigation.

A theme throughout the day was whether test frameworks/drivers should include a capture/playback feature. Capture/playback, as the SWAT editor has, can be a great way to help learn a new tool, and also can be helpful in debugging test scripts or figuring out the right statements to use in a particular test. However, people shouldn’t get bogged down in only using capture/playback. Jason Huggins, the Selenium developer, came up with a metaphor that capture/replay is like the little “trainer” airplane that jet pilots train on first. The pilots can learn a lot from the trainer, but eventually they have to move up to a real jet. Mike Longin (I think it was Mike) had the idea that a tool such as Selenium could have a dial on the console showing when the user has achieved a certain level of expertise and needs to move away from capture/playback and into good OO test design.

After the workshop, some of us got together a group of 15 people and went out for pizza. I had the pleasure of sitting with Jurgen Appelo, author of the top blog in Europe and an expert in complex design theory, chaos theory and the like. He is so smart, and also very friendly and down to earth. Another dining neighbor was Ellen Gottesdiener, an expert in business analysis, process, systems thinking and organizational culture, and author of two books. I got a lot of ideas from her that I think we can use. Like Jurgen, she’s extremely smart and extremely nice. Abby Fitchner aka “HackerChick” also sat with us, she is very fun and has a lot of creative ideas. She and Nate Oster did a super session during the conference on “where does developer testing end and tester testing begin”.


More of what I learned at Agile 2009 later, watch this space!