Automated Testing

Automation has become an integral part of the Software Testing Life Cycle. It replicates user actions and performs those actions with the help of a program. It can enter data into a system under testing, compare results and also provides testing reports. For fast paced software delivery, manual testing becomes a time-consuming activity and increases cost. Automated Testing reduces cost and also saves time spent in regression testing. But the goal of automation is to reduce the number of test cases to be run manually and not eliminate Manual Testing altogether.

Automation testing, just like Manual Testing, happens in phases.

  • Tool Selection
    • It largely depends upon the application under testing
  • Defining the Scope of Automation
    • The scope is determined based on the area/modules which need to be automated. These can be evaluated based on
      • High Risk - Business Critical test cases
      • Test cases that are executed repeatedly
      • Test cases which are time consuming
  • Planning, Designing and Development
    • A strategy is planned and designed, and development for the automation activity is carried, where –
      • A Framework is designed
      • A Test Data/Test Bed is designed
      • Scalability of the project is determined
      • Test scripts are developed
      • Test scripts are evaluated and deployed on test servers/production servers
  • Execution
    • Based on the Test Data designs and the scripts, tests are executed. Once the tests are executed, a consolidated report is generated giving the status of the automation activity, i.e., tests passed, failed, skipped etc. Based on these reports, the test engineer takes appropriate action for failed/passed tests.
  • Maintenance
    • As there are often new enhancements on the application or product, automation scripts are required to be added/altered in order to be in sync with new features/enhancements. Hence automation scripts need to be maintained whenever there are enhancements, in order to preserve their effectiveness.