Let's list out a few common questions that every software testers in the automation field might have heard in their career.
- What to Automate ?
- Why to Automate?
- Is this really useful?
- Are we really in the needs for the Automation?
- Will you ensure 100% coverage by automation ?
- When will you finish automating the entire application ?
- Technology?
- Manual Intervention?
& Many more questions ...
If I will give my perspective as a normal user or a person who needs to give his node to say, YES please move on. I will surely ask these questions and as a person who is presenting his idea and standing in front of group of people to convince them for YES. I usually thought why they all are asking this which is again a normal behavior.
We all use lifts in our daily life. You may know that the usage of lifts in our life again an automation which makes us so much use to it, that now we forget about taking stairs. So, we can say ROI matters a lot and the effects of Automation also.
If I will take above as examples, surely they have done lots of analysis and research before putting the real time implementation of Juicer & Lifts in actual. This says that how much important to have analysis and feasibility at initial stage only in order to be able to have good return on Automation's.
The most important thing that you should know is that Automation is always a Team task and a single person cannot accomplish it alone. We cannot say to automation as a sub part of any project. Automation is also a kind of whole project which requires initiation, planning, monitoring, execution, reviews and control.
Let’s move on to major factors before initiating any Automation.
Current state of tasks or needs to be automated: - It is always good to have thorough research on current activity which we are doing manually and how much is the effort we are putting in as well as what is the frequency of doing the same may be in a year or in a month it depends. This analysis will ensure us about the current efforts in numbers as well as what can be the objective for automation.
Feasibility: - There should be an objective if there is any need of Automation somewhere. During analysis sticking with the Objective that what to automate is very much needed as sometimes what happened like for example if we are analyzing the Automation for any recurrent task can lead to automate the process in sub parts. So, if it is the case then have small objectives analyze it in parts and consolidate it to see, what the benefits of the same are globally now.
Benefits of documentation during feasibility study: - Ink is always better than memory. Document or write somewhere that where exactly we need to put more focus, may be any of the objects on the Web Page, may be on any of the functionality of the application, may be complex SQL queries usage, application delays, back-end services etc. This is the first step which makes us more confident that yes we can handle the tough scenarios and here after documenting them and manual analysis, it is good to prepare small automation scripts.
POC through small scripts: - It is always good to do POC for all the documented complex scenario’s in order to able to check run-time difficulties as well as how application will respond to automation and to defining the work flow of automation suite. This will make us more confident towards technology to be used as well as that we already prepared for the coming difficulties as the result of this will lead be the inputs for further analysis as well as taking care of technology needs for the automation. Sometimes, what happens that during this phase, we need switch on to different tool or framework to see which tool or framework goes according to our requirements. Also we can ensure the coverage of the flow that we created and by getting it reviewed from client, we can finalize all the needed functionalities has been covered as per the clients need.
Technology needs: - One of the most important aspect as this derives the future team for the automation as well as the skill set we need to accomplish the task. Documenting all these needs will provide us the knowledge that how much cost we are saving using open source and or if we need total licensed tools that what all can be the yearly savings using this automation if we are spending on tools also. Usually this is also one of the question arises now a day’s what you are using, any training needs, any tool purchase. All of the above questions will become negligible if we initially take care that we should go with current knowledge as well open source tools or frameworks of the team. Why this happens because it is not necessary that you are building automation for a customer only sometimes we automate for ourselves and if it is the case for the customer. We can say, Sir there will be no extra cost on tools and technology because we already have skills required, we have tools n framework and no extra cost is needed. Surely, customer feels more confident towards solution.
Till this half analytical part, we completed thorough analysis; we checked the feasibility of automation for complex tasks as well as we know that what technology we will be using now.
Manual Intervention: - One of the most integral parts of feasibility study is the left manual intervention time during running the automation. Sometimes, what happened we take this into consideration after completing automation and then we realized that we have to put this much of manual effort also to run the same like in preparing inputs, environment preparation, results analysis etc? It is very much important to document this manual intervention and with steps to be followed for the same because may be while analyzing this manual effort; we can come up to introduce a small macro or small script which prepares our inputs etc.
Workflow: - It is good to come on common understanding regarding the workflow of the activity after automation and manual intervention. This will make other people to understand your thought process that what actually we are trying to do and how it looks like after completion as well this will makes us more confident towards solution.
Maintenance & Risk: - Usually, while analyzing the needs we concentrate on present and forgot about the future challenges or updates needed to have consistent returns from automation in future also. So, it will be good to take care that how much effort we need in future for the maintenance as well as what will be the time period to use the automation. If there is a future maintenance or changes are there in the near future then surely we need engagement of Team also. This shows that it does not matter how excellent the idea is what matters is this really gives us returns in future. Sometimes, we know for the critical and complex technical tasks we need automation and in these cases we usually go with the complexity in order to be able to maintain the quality of deliverables.
Quality: - While analyzing the automation needs, we need to concentrate on Quality of the solution also and how we will go to validate and verify the outputs of the automation suite for the deliverables. This will give us the idea that how to make suitable reporting templates which will be easily analyzed by the client and what all we need to put into those reports.
Estimations: - After analyzing all the aspects for automation, we can move ahead for the exact development costs for this automation. My experience say’s it is good to use Work break down structure here as it will be very easy for anyone to have answers during proposal presentation with Management or with Client. WBS can be next topic to write may be……
The high priority heads, we have covered are:-
- Current state of task
- Feasibility
- Benefits of documentation
- POC through small scripts
- Technology needs
- Manual intervention
- Workflow
- Maintenance & Risk
- Quality & Reporting
- Estimations
Now, is the time for coming on to the conclusion:-
Return on Investment:- We know what is the objective of the automation proposal, we have the documentation of all the identifications and needs, we have the practical run time examples that where we can stuck and what all can be the technology used or complex tasks solutions can be, how much manual intervention is needed, new workflow, Futuristic risks and new needs, and at last how we are securing are Quality and Customer expectations and reporting. If we consolidate all of the above points and estimations in numbers, we can easily calculate the ROI and can judge from our self only that are we on the right path to automate the objective or it is good to do partial automation or may be no automation is needed.
Highlights:-
- For successful execution of above cycle, we need team as it is good to have opinions and thoughts.
- The conclusion of above points will lead to small presentation preparation in order to be able to put our solution in front of Business.
- The whole above exercise will take time surely but at last the conclusion is really fruitful for everyone.
- By doing this we can easily say that there can be in between changes while developing the solution but not the major ones.
- We know what we are producing and what our responsibility is.
- These exercises gives us more experience and desire to do more towards the same and while analyzing any automation needs, sometimes we come up with our next lead to automates.
- This exercise will give grow team experience towards technology as well as will grow analytical skills.
- One perfect solution and implementation will surely lead to many more like this and with passion.
At last, Automation does not mean Test Automation or Regression Automation. Automation can be possible in any of the scenario, it is just we should be studied well our objective and implementation of Feasibility Study for the same.