About STP / 877.257.9531
Log In Join Now

Author



Rating

3


Published

Tuesday August 30th 2011 12am

How to Successfully Build an Automation Program

Software Test Professionals Conference Automation

To effectively implement an automation program, the same approach and similar effort is needed when building complex software. You will be integrating a system with many parts as well as software (i.e. scripts and glue software). Additionally, to complicate things the automation software will be interfacing with another application (application under test). Therefore the same lessons learned in building systems and software should be applied to your automation project.

Goals and Objectives

It is vital to define the high level goals of the automation system. The most important questions to answer are:
  • What type of application features are we trying to test - is it performance testing, unit testing, or functionality testing?
  • What is the extent of automation that you are attempting and what is the business need?
  • How do you propose to support this automation once implemented?
Once these questions are answered the next set of items to be identified are the features you require in the automation system. These include:
  • Logging capabilities
  • Graphical automation scenario creator
  • API for remote procedure calls
  • Reporting
  • Resource management of test/lab resources
  • Concurrent scripts
  • Capability to prepare or “clean up” the test environment
  • Versioning of test scripts
  • Documentation for administration/test script creation

Designing and Documenting Automation Architecture

STPCon Fall 2011 SAVE Once these items are identified then you can design the automation framework. The automation framework lays the foundation and rules for the automation toolset. For example, a shared software library for automation scripts should be implemented and used by all automation script writers. Similar points are listed below:
  • Extensibility: Automation requirements will grow in step with the requirements of the software under test, and the automation system must be able to cope with that growth.
  • Instrumentation for debugging purposes: Running scripts is the easy part. Debugging scripts is what takes the most time. There should be a system in place that quickly summarizes all the problems from a test execution run.
  • Scripts should be modularized.
  • Maintaining statistics of executions: Identify test cases with a high false positive rate and either fix the root cause or remove from your executions. Conversely, identify tests that find real software defects.
  • Automation scripts re-usability: Could scripts developed for feature testing later be re-used for integration testing or performance testing. Could other groups re-use the scripts?

Tool Selection

Once you have the automation framework defined then pick a tool to develop the automation framework. Open source, commercial or in-house tools are your typical options based on whether the tool fits current and future requirements. Other factors in tool selection include:
  • Support requirements to maintain the application
  • Average time required for a feature request or bug fix to be implemented
  • If open source, is the community active in developing features and fixing defects?
  • If the software is home grown do you have developers in-house to support the product?

Resource Management

Full-time resources must be qualified and fully committed to building and maintaining an effective automation program. When staffing up for an automation project create a list of job requirements for the new team members. If the focus of the team is divided between multiple complicated projects, it will reduce the chances of success of the automation program.

Automation programs contribute substantially to reducing the cost of testing and improving, but it is critical to plan them carefully with the same rigor as you would in software development.

About the Author

Sreekanth Singaraju, VP of Testing Services for Alliance Global Services, has more than 12 years of senior technology leadership experience and leads Alliance's QA & Testing organization in developing cutting edge solutions. He will present Integrated Test Automation for Enterprise Mobile Apps at the Software Test Professionals Conference Fall 2011.

Alliance Global Services is a software development firm that partners with software, technology and information-intensive businesses on their mission critical work. Alliance architects and builds software applications, platforms and products that become primary drivers of innovation and revenue growth for its clients and their businesses. Alliance is recognized for driving quality and speed-to-market when business success depends on the software inside. For more information, please visit www.allianceglobalservices.com.


Comments

You must be logged in to comment.
Retrieving Comments...


Advertisement




Friend SoftwareTestPro on Facebook
Follow @SoftwareTestPro on Twitter
Create or Join a Crew

Tweets You Care About


    



Explore STP