The Six Million Dollar Automator


Notice the following fill-in-the-blank problem:

If… (Proficiency in a manual test case repository tool) ? (Proficiency in manual testing)

And… (Proficiency in a test planning tool) ? (Proficiency in test planning)

Then (Proficiency in an automated test tool) ? (Proficiency in ___________)

The answer is "automated testing"! Clearly knowledge of a specific tool doesn't equate to expertise in the function that is aided by the tool, yet people have a problem filling in this blank. Test automation remains the only software quality engineering function driven by tool-specific knowledge. When an organization hires a manual test engineer, general testing knowledge—not knowledge of a specific test case repository—is the determining factor. Likewise, what a potential manager knows about management processes is more important than knowledge of a specific tool. Tool knowledge is a plus, but not the most important factor.

There are bodies of knowledge, classes, and certification programs that provide engineering or management skills that can be transferred to any tool. Test automators haven't had the same luxury. Their only option is to take a tool-specific class or get a tool-specific certification. But, such classes and certifications don't guarantee that an individual will be an effective test automator. In fact, without the proper skills these classes and certifications simply mean that an automator will be better at being ineffective. To resolve this problem we must rebuild the benchmarks that we use to assess the test automator, or we must rebuild the test automator himself.

We Can Rebuild Him
Maybe I watched too much TV as a child, but talks of rebuilding the test automator brings to mind the fictional character known as the the Six Million Dollar Man. Much like they reengineered a broken test pilot into the Six Million Dollar Man, we will rebuild the automator using automation bionics collectively named the Automation Body of Knowledge (ABOK). The ABOK is composed of the following bionic parts (skill categories): 

  • Automation's Role in the Testing Lifecycle
  • Automation Types
  • Automation Approaches
  • Automation Tools
  • Automation Framework Design Process
  • Quality Attribute Optimization
  • Programming Concepts
  • Exception Handling
  • Automation Analysis and Reporting
  • Automation Objects
  • Debugging Techniques

Let's begin the operation!

See in Greater Detail 
The first set of automation bionics we'll implant provides the ability to see things in greater detail. This will allow the automator to speak more intelligently about automation concerns, make more informed decisions, and help set the direction in which the project needs to go with respect to software test automation. 

  • Automation's Role in the Testing Lifecycle: This includes planning-related items that are often overlooked yet are extremely important for test automation success, such as calculating automation ROI, choosing what to automate, and determining exit and entrance criteria for the test automation phase.
  • Automation Types: The different types of test automation—functional regression), unit, integration, performance, etc.—are often lumped into one "test automation" category. It's important to understand the basic differences between types, even if you don't specialize in all of them, so that you can speak intelligently about them.

See Farther
The following automation bionic allows the automated tester to see farther and recognize items that can impact the automation effort over time. 

  • Automation Approaches: Automation is more than record and playback. Approaches include data-driven, functional decomposition, and keyword. Awareness of these approaches, along with their pros and cons, is pertinent for building tests that last.

See Things that Normally Can't Be Seen
The normal automation eye is conditioned in a way that limits what the automator is able to see. However, the following automation bionic provides the automator with sight beyond one's wildest dreams: 

  • Automation Tools: Organizations often must make a decision about the introduction or expansion of test automation based on the ability to buy a specific tool. It's important to expand your vision to both commercial and non-commercial tools and to know how to effectively valuate these options and make an informed decision about implementation.

Lift Incredible Weights
Many automation efforts fail because the framework used for automation of one release of a single application collapses under the weight of addition releases, different applications, and varying constraints. These bionics allow the automator to operate within a framework that can handle the increasing, varying weight of test automation projects:

  • Automation Framework Design Process: This addresses a repeatable process for choosing an approach that best fits your organization. It also addresses building a suite of automated tests, which allows for faster automation over time.
  • Quality Attribute Optimization: This defines various quality attributes (maintainability, flexibility, scalability, etc.) of the automated test bed and identifies ways of addressing these attributes based on priorities and constraints placed on each.

Run Farther and Faster
The following embedded automation parts will help the software test automator ensure the automated tests run as far and as fast as possible:

  • Programming Concepts: Whether you use a tool with a scripting language, tree structure, or keywords, fundamental programming concepts such as variables, control flow statements, and modularity remain paramount in effectively automating tests and increasing the distance tests can reach through increased system coverage and test flexibility.
  • Exception Handling: This category addresses the production of exception-handling routines that allow your automated tests to continue running after an unexpected occurrence. Without proper exception handling, test automation loses many of its timesaving benefits. In addition, lack of proper exception handling can negatively affect the speed at which the test suite runs.
  • Automated Test Analysis and Reporting: Test reporting and analysis is a repetitive process, yet can be extremely time consuming. This category addresses what types of reports should be generated and how to effectively produce them to save time in analysis and reporting.

Crush Items that Are Normally Impossible to Break
Preventing and solving test automation problems are fundamental skills that test automators often lack. These automation bionics provide the ability to crush issues that normal test automators can't even bend.

  • Automation Objects: Objects are central to automating applications; if the tool or script can't access objects, the application can't be automated. Many automation issues and failures result from a lack of proper understanding of objects and object behavior. This category addresses key object terminology (object maps, models, and properties) and the understanding of object dynamics.
  • Debugging Techniques: Regardless of how well automated tests are designed and created, problems will occur. Sometimes they're related to the scripts and sometimes the application, but finding the root cause is not always simple. The inability to debug scripts can delay schedules or bring automation to a halt. This category addresses techniques such as backtracking and problem simplification, which aid in identifying and resolving automation errors.

With the ABOK, IT organizations will be better equipped to identify qualified automation resources and to offer their resources the benefit of a real automation career development track. Automators may improve their skills and better market themselves to organizations of interest, even without access to the current fad tool. These automation bionics make the test automator stronger, smarter, faster, and ready to take the world of software quality engineering to new heights.


About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.