Los Techies : Blogs about software and anything tech!

UI Automation tools snake oil?


Michael Feathers posted a thoughtful piece describing the general problems of UI testing tools and the industry in general.  In general, I’d agree here.  Automation tool vendors, as with almost every tool vendor out there, are eager to solve perceived software development problems.  Unfortunately, these tools usually only address symptoms of larger problems.

With UI testing tools, this is no different.  When we started out authoring UI tests for a large MVC application, we had a few large goals in mind.  The tests needed to be:

  • Stable
  • Understandable
  • Maintainable
  • Valuable

To achieve these goals, we needed to do exactly what we do when we write code using TDD, design for testability.  I won’t go into everything we did, there’s already a whole screencast on that.  However, Michael does bring up some key points:

  • UI tests should test the UI layer
  • Architect your system so that you can test all of your business logic separate from the UI layer

That’s what we’ve done, and it’s been very successful.  We have UI tests, around 500 of them, and we’re not staying up until all hours of the night keeping them working.  We also have subcutaneous tests, that work in a layer right below the UI layer, that allow us to send a UI message into our system and check what comes out on the other side, whether it’s business rule violations or entities modified.

All of our testability enhancements came from design for testability.  We use strongly-typed views.  We don’t have any business/domain logic in controllers, only UI controller logic.  Separating your architecture into layers isn’t for portability, it’s for separation of concerns.  Once we started designing for testability in the large, and not just the unit level, we were able to maximize the value of automated tests, both at the UI, integration and unit level.

If anything, this is another example of the need for a developer to work on their spidey sense for vendor product demos.  We rail on MS for drag-and-drop demos, but it’s every tool vendor that employs this technique.  Just like every other product sold in the world, it’s up to the buyer to be critical of the true value a tool can bring.

Kick It on DotNetKicks.com
Posted Jan 04 2010, 09:03 AM by bogardj
Filed under:

Comments

Twitter Trackbacks for UI Automation tools snake oil? - Jimmy Bogard - Los Techies : Blogs about software and anything tech! [lostechies.com] on Topsy.com wrote Twitter Trackbacks for UI Automation tools snake oil? - Jimmy Bogard - Los Techies : Blogs about software and anything tech! [lostechies.com] on Topsy.com
on 01-04-2010 10:37 AM

Pingback from  Twitter Trackbacks for                 UI Automation tools snake oil? - Jimmy Bogard - Los Techies : Blogs about software and anything tech!         [lostechies.com]        on Topsy.com

Jason Pettys wrote re: UI Automation tools snake oil?
on 01-04-2010 11:11 AM

Hey Jimmy -- thanks for responding.  I found Feathers's article and thought he spoke the truth, but literally the first thought I had was, "I wonder what Jimmy would think of this."  Then I found your comment on his article :)

Thanks for the info.

uberVU - social comments wrote Social comments and analytics for this post
on 01-04-2010 1:43 PM

This post was mentioned on Twitter by lostechies: blogged: UI Automation tools snake oil?: Michael Feathers posted a thoughtful piece describing the general problems... http://bit.ly/5QfAeC

UI Automation tools snake oil? - Jimmy Bogard - Los Techies … | twittersoftware.org wrote UI Automation tools snake oil? - Jimmy Bogard - Los Techies … | twittersoftware.org
on 01-04-2010 5:49 PM

Pingback from  UI Automation tools snake oil? - Jimmy Bogard - Los Techies … | twittersoftware.org

Arnis L. wrote re: UI Automation tools snake oil?
on 01-05-2010 5:25 AM

I'm glad to hear success story. UI tests are quite hard to handle.

Add a Comment

(required)  
(optional)
(required)  
Remember Me?

Enter the numbers above:
Copyright Los Techies 2008, 2009. All rights reserved.
Powered by Community Server (Commercial Edition), by Telligent Systems