Schedule and Events

March 26-29, 2012, Software Test Professionals Conference, New Orleans
July, 14-15, 2012 - Test Coach Camp, San Jose, California
July, 16-18, 2012 - Conference for the Association for Software Testing (CAST 2012), San Jose, California
August 2012+ - At Liberty; available. Contact me by email:

Tuesday, June 09, 2009

On Yard Work

This weekend I spent a fair amount of time working in the backyard.

When I work in the yard, I use different tools depending on how much work I'd like to do. I may start by bagging trimmings, but soon I'll need the shears, then the chainsaw. Likewise, when I take out weeds, I start with a spray, move to the weed wacker, and eventually the lawn mower.

Now, the lawn mower and the chain saw - these things make me more effective. They make me faster. They extend my reach and give me power. Yet I wouldn't call them "automated landscaping." That would be silly. Nor would I call a pair of shears, which is a form of machine "partial automation."

They are tools. I use tools to get the job done. No one talked about automated lanscaping because it's a silly idea.

Yet ... have you heard of the Roomba? it is a vaccum cleaner that, supposedly, you can simply set it your room, press a button, and walk away. It'll do the vacuuming automatically.

And they even mow lawns.

Oh, of course, you have to bury guide wires in the ground to make sure the machine doesn't wander off into the street, and likewise to make sure it doesn't mow over your tulips. And I'm sure it's pretty stinky about cutting in areas with rocks and other corners.

That's about how I feel about test automation:

1) If /you/ are the one doing the driving, it's possible to use tools to extend your reach or go faster,
2) If you are not - if you want to have the testing work unattended ... well, it's possible. You have to spend a lot of effort doing plumbing tasks. If you have a GUI, the end might not look so great - so make sure you personally inspect the boundaries.

That's just my quick thought on a Tuesday morning. What do you think?

UPDATE: Last week I sat through Scrum Training with Ron Jeffries and Chet Hendrickson. It was awesome - amazing - and I'm happy to do a blog post on it. Ron and Chet made a serious and reasoned case for Acceptance Test Driven Development - to create acceptance criteria for every story and automate those tests as regression tests. They also provided specific techniques to make the cost of that plumbing cheaper. I grant that if you don't have a GUI, or if the wiring on the GUI is trivial and you can "get behind" it, the ROI of Automated Acceptance Testing might be reasonable in many situations - you might just want that Roomba-for-the-lawn. AND you'll still want to inspect some things personally. c'est le vie.


Anonymous said...

NIce comparison. But I think I would rather have you do testing than yard work. A Chain Saw when mowing the yard? ;-P


Joe Harter said...

I wouldn't mind using a chainsaw when testing sometimes...

I agree with your post Matt. To add to the analogy a little bit. Imagine that you placed your guide wires and now your lawnmower can handle a 50' x 30' patch of lawn just fine, and this saves you 1 hour of mowing a week, but your landlord plants trees and flowers out in the middle somewhere and you have to lay down the wires again and again and again. This is what GUI automation feels like sometimes.

It occassionaly seems like a rabbit built a nest and it is now full of baby bunnies when the lawnmower ran over it. I guess I'd rather an automated lawnmower run over it, but perhaps if I were guiding the lawnmower I could have avoided the nest in the first place.

Thanks for the thoughts Matt!

PlugNPlay said...

@Joe - I really like your style, but I wonder why we are avoiding the bunny nest. We are testers. Death to the bunnies!

@Matt - I had a roomba and it was awful. It didn't vacuum very well, plus I had to clean up the whole room first and then keep my kids out of it while the roomba was working. Ever tried to do that?

PlugNPlay said...

PS - I follow a somewhat similar metaphor in this post.

Shrini Kulkarni said...

>>>If /you/ are the one doing the driving, it's possible to use tools to extend your reach or go faster

Matt, this statement helps me think about "speed and its relevance" in automation. Speed is not everything as most automation enthusiasts think.

It is important to think - what part of testing can gain from speed and what part can not.

Depending upon what type test you are performing, how and what kind of information you are trying to uncover by automation - a variable % of that testing can gain from speed. Automation scope (what do you automate) has to identify this %. Automation can help you to drive faster. We must not forget to ask "what else is there in testing" - probably few comparisons. If you have a programmable oracle - you can gain from automation.

Big part of testing which is difficult to automate is "interaction" between subject of testing and the tester.

I am not sure if there is called "interactive automation".


Cris said...

Hmmm. I'll check it out.