Feasibility Analysis in Test Automation
Many of us might have a misconception that test automation is related only to the automation of the test scenario and executing them. But the fact is- these two things, scripting and execution is part of the automation process life cycle. The whole automation process consists of the below phases:
- Automation feasibility Study
- Test Strategy
- Test Environment Setup
- Test Script designing
- Test Script Execution
- Defect Analysis and Fixing
PS: The automation process life cycle may vary from organization to organization.
In this post, we will focus on the very first step of the automation process, i.e. “Automation Feasibility Study”.
Before we start with the automation of the manual test cases, it is necessary to check whether we can proceed with the automated test cases or not. To understand it more clearly, lets look at an example:
An automation team has been given 500 test cases to automate and they have been given the estimation of 30 days without having the glimpse at the test cases. When they started to automate it, they start facing the issue of object identification, functional flow and various other issues. This leads to delays in the delivery of the scripts.
If you don’t want to be in a same chaotic situation, it is necessary for you to have a robust process for the automation. The first step in this process needs to be the feasibility analysis.
“Feasibility analysis in automation testing refers to a checklist on basis of which we can decide that we should proceed with the automation of the test cases or not.”
This checklist consists of various factors upon which automation can be decided.Some of them are as follows:
- Functional Knowledge of Application
Before starting the automation testing,it very important to have the functional flow of the application.Proper knowledge transfer(KT) must be provided to the automation team.This KT can be given by the manual testers or the developers.This will help the automation testers to divide the test cases on the basis of the functionality and carry out feasibility study in a easier manner.
- Status of development of the Application
Development of the application should be freeze before the automation of the application begins else it will result in the increased effort for modifying the script everytime in the same cycle ,hence increasing the delay of the whole automation life cycle for that release.In short.automation is valid for the stable applications only.
- Required Access/Privileges for the application is granted to automation tester or not.
- Automation tool is able to identify the application in form of objects or not.
This is another important thing that must be fulfilled before we proceed with the automation.For UI automation ,the application is divided into the number of objects.The proposed automation tool should be able to identify these objects then only we can proceed with the automation else automation using that particular tool is not possible.The only way left out here is to try other automation tool for identifying the objects of that application
- Percentage of the automation that can be achieved in application
While we think of automation of the particular application ,we need to set the minimum percentage of allowable automation for the application .Generally this is around 70% in various organization.
- Return on investment(ROI)
During the automation process ,we came across many types of cost like tool cost,script development cost,execution cost and many other cost.So it is necessary to visualize the profit that automation will be giving to an organization over many years on investment.Different organization has different way for calculating the ROI.A simple way for calculating ROI is as follows:
- Understand the focus of automation with respect to reducing testing cycle time, maximizing test coverage, reaching the market faster, cost benefits, etc.
- Estimate the regression test repository, with respect to effort and cost
- Choice of test automation tools
- Automate the entire regression test suite versus taking incremental automation approach
- Understand the product life cycle and its technology road map
- Test Automation Framework design
In the end I would like to say that the points written above are only the subset of the overall automation feasibility checklist. But these must be included in any automation testing checklist. Apart from these points, the checklist may vary according to the organizations.