Automation Testing

Automated software testing is a process in which software tools execute pre-scripted tests on a software application before it is released into production.

The objective of automated testing is to simplify as much of the testing effort as possible with a minimum set of scripts. If unit testing consumes a large percentage of a quality assurance (QA) team’s resources, for example, then this process might be a good candidate for automation. Automated testing tools are capable of executing tests, reporting outcomes and comparing results with earlier test runs. Tests carried out with these tools can be run repeatedly, at any time of day.The method or process being used to implement automation is called a test automation framework. Several frameworks have been implemented over the years by commercial vendors and testing organizations. Automating tests with commercial off-the-shelf (COTS) or open source software can be complicated, however, because they almost always require customization. In many organizations, automation is only implemented when it has been determined that the manual testing program is not meeting expectations and it is not possible to bring in more human testers.

Define the scope of Automation

Scope of automation is the area of your Application Under Test which will be automated. Following points help determine scope:

  • Feature that are important for the business
  • Scenarios which have large amount of data
  • Common functionalities across applications
  • Technical feasibility
  • Extent to which business components are reused
  • Complexity of test cases
  • Ability to use the same test cases for cross browser testing

 

Planning, Design and Development 

During this phase you create  Automation strategy & plan, which contains following details-

  • Automation tools selected
  • Framework design and its features
  • In-Scope and Out-of-scope items of automation
  • Automation test bed preparation
  • Schedule and Timeline of scripting and execution
  • Deliverables of Automation Testing

 

Test Execution

Automation Scripts are executed during this phase. The scripts need input test data before there are set to run. Once executed they provide detailed test reports.  

Execution can be performed using the automation tool directly or through the Test Management tool which will invoke the automation tool.

Example: Quality center is the Test Management tool which in turn it will invoke QTP for execution of automation scripts. Scripts can be executed in a single machine or a group of  machines. The execution can be done during night , to save time.

Maintenance

 As new functionalities are added to the System Under Test with successive cycles, Automation Scripts need to be added, reviewed and maintained for each release cycle. Maintenance becomes necessary to improve effectiveness of Automation Scripts. 

Framework in Automation 

A framework is  set of automation guidelines  which help in  

  • Maintaining consistency of Testing
  • Improves test structuring
  • Minimum usage of code
  • Less Maintenance of code
  • Improve re-usability
  • Non Technical testers can be involved in code
  • Training period of using the tool can be reduced
  • Involves Data wherever appropriate 

There are four types of framework used in automation software testing:

  1. Data Driven Automation Framework
  2. Keyword Driven Automation Framework
  3. Modular Automation Framework
  4. Hybrid Automation Framework 

Automation Tool Best Practices

To get maximum ROI of automation, observe the following

  • Scope of Automation needs to be determined in detail before the start of the project. This sets expectations from Automation right.
  • Select the right automation tool: A tool must not be selected based on its popularity but it’s fit to the automation requirements.
  • Choose appropriate framework
  • Scripting Standards- Standards have to be followed while writing the scripts for Automation .Some of them are-
    • Create uniform scripts, comments and indentation of the code
    • Adequate Exception handling – How error is handled on system  failure or unexpected behavior of the application.
    • User defined messages should be coded or standardized for Error Logging for testers to understand.
  • Measure metrics- Success of automation cannot be determined by   comparing the manual effort with the automation effort but by also capturing the following metrics.
    • Percent of defects found
    • Time required for automation testing for each and every release cycle
    • Minimal Time taken for release   
    • Customer satisfaction Index
    • Productivity improvement

 

The above guidelines if observed can greatly help in making your automation successful.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s