Test & Automation Consulting, LLC

Automation by Design Columns

You need the free Adobe Reader to read the columns.

These columns were written by Jamie Mitchell over the last couple of years to help more organizations succeed with test automation. It is unfortunate that most organizations that try to automate some of their testing fail and give up. Discussions with fellow automators have shown that most who are successful at it have failed many times in learning how to get it right. These columns were written with the belief that reading about his experiences might help others avoid the traps he stepped into.

  1. Automation by Design (introductory column)
    Welcome to Automation By Design, a new column about software test automation for testers and other software development professionals. The automation of testing is an emerging field that can be very rewarding to both companies and individuals alike. Like many other new technologies, however, there is more than meets the eye for the uninitiated; success is not automatically guaranteed simply because your organization has bought a tool. Full Article
  2. Organizational Bloopers
    Last issue, we discussed reasons why test automation projects often fail. So how do we ensure success? The bad news is that there is no magic formulae for success; it is conceivable that your organization may do everything right and still fail. Software development (and test automation is most definitely software development) just works that way. The good news is that you can enhance your chances of success by attention to detail, good processes, and hard work. Full Article
  3. Designing Infrastructure Functions
    In the last issue, I put together an organizational blooper film: exposing a hypothetical automation attempt at a fictional company in which every step taken destined the project to failure. In reality, the example was a composite of many failed automation projects that I have seen or been party to. Full Article
  4. Engineering the Infrastructure
    In the last issue, we discussed designing test automation that can be maintained more cost effectively than recording-only scripts. The software engineering methodology we are going to adopt is called functional decomposition. We will use the test tool language directly to build an infrastructure containing sub-routines that directly execute tasks in the application(s) we are testing. The functions we build will be analogous to building blocks or Legos; the scripts we execute will be largely made up of sets of Legos combined in different ways. Although the examples are written in Mercury Interactive WinRunner, this approach works with any of the major test tools. Full Article
  5. Refining the Infrastructure
    In our last column, we talked about the need for designing our automation scripts in such a way that they would be effective, maintainable and affordable. There are several different automating methodologies available to the automator; the one we have chosen to illustrate this time is called functional decomposition. Full Article
  6. A Model Of Reality
    So I'm sitting here in the Minneapolis airport, waiting for a jet plane to take me to yet another place to talk about how to's: how to solve this test automation problem using that technique on this platform with this operating system, yadda yadda yadda. It struck me that I am always talking about how and rarely about why. Why doesn?t this automation technique work as advertised? Why doesn't record / playback ever work (well, so very rarely that it is hardly worth talking about.) This column is about test automation, and mostly we talk about how to make it work, how to get the greatest return on the investment we make. Today we are going to talk about why we need to do what we do. Rather than looking at the trees as we have in the last several columns, lets look at the forest. Full Article
  7. Applying the Reality Model to Automation
    In my last column (June 2001), I advanced the hypothesis that one of the main reasons the Record / Playback (R/P) methodology of test automation usually fails to achieve set testing goals is that the paradigm does not sufficiently model real world testing. I also laid out several behavioral models including the manual testing model (how do manual testers actually plan and run tests) and the event-driven architecture model (how do we actually interact with a GUI-based operating system.) Full Article
  8. Test Automation Architecture
    The question from the client was simple, almost deceptively so. "Why should we automate our testing?" Hidden inside that query, of course, were several other questions, "Why should my company spend tens of thousands of dollars, buying software, training automators, creating scripts, etc.? What will we get out of it?" Full Article
  9. Why Use Script-Based Testing When We Can Use Table- Driven (or Scriptless Automation?)
    Henry Ford invented the automobile. Just ask any elementary school student who has suffered through Miss Waxman's twisted idea of history class. Benjamin Franklin invented electricity while flying a kite, Marconi invented the wireless radio, and Don Ameche invented the telephone.
    History is rife with examples of people getting credit for the invention of an object, technique or process; sometimes even justifiably. Full Article
  10. Simplicity: What a Concept
    OK, I'll admit it. I think everyone should be able to cook a gourmet dinner, kill a bear, fly an airplane, and program test automation. Unfortunately, this is yet another case of where our school system has failed us! Specialization appears to be the bane of civilization. Full Article