We are in the era, where test automation is being utilized in most of the application development projects. Test automation is being carried out as a support activity for the manual test process, which will help to cut off the testing time and also reduce the testing budgets. The benefits of test automation will be reached in the long run where scripts will be executed continuously along with the sprints of an agile development process.
A test automation project should be started carefully with a good feasibility study. If we implement test automation without a proper study, it will provide deadly nightmares to the project and even to the organization. During the feasibility study, we should look at every aspect before commencing the actual project. There are several things that we should look upon. The most important one is conducting a Proof of Concept (POC).
When conducting a POC we should look at below points:
- The nature and Platform of application:
We should look at the nature of the application that we are going to automate. The platform should be accessed if its Web, Mobile, Desktop or Web Services (API) based. This is the primary area that will help us to know what test automation tool that we should utilize. If it uses more than two platforms, we may have to integrate with two test automation tools.
- Study of application and its underlying technologies: i.e. if the application can be accessed via the web, Then, Are they using any special technologies like PHP, AngularJS or ajax? This is also a point to change the tool.
- Test Budget:
If we have a good test budget and if the client is willing to finance the project we have the comfort of using commercial test automation tool.
- Tool Selection:
We should look at several tools as options not just single or two test tools. Tools should be evaluated against the support it provides. If its commercial, we should look at the support the tool’s organization are going to give us. Whether its 24 hours and whether its quick. If the tools that we consider are going to be free and opensource, then we should look at the free blogs and the community usage of it.
- Compatibility with automation platforms:
We should see whether the tool can be installed and executed in the same development environment, the compatibility that it has with the Operating Systems, Browsers, Software and Hardware configurations.
- Development languages support:
Another area of concern is whether we can script the scenarios via Java, PHP, C# or C++. These languages are popular and we should have automation engineers who are able to use such languages.
- Skill Set:
We should have a skilled set of test automation engineers who are familiar with the tool and also with the development language.
- Test Case Availability:
There should be a considerable amount of test cases available to automate. We should take some of the core test cases and look at the possibility of automating them. We should check whether the UI objects can be captured using the tool and whether there are ways around to handle for those which are unable to capture. This should be done prior commencing the actual project. The test cases should be updated and detailed enough to start automation. If not we should first let the manual tester to update and make these test cases detailed enough for automation.
- Integration Support:
The automation tool has to develop a test automation framework and the capability it has to integrate with other support tools like Continuous Integration and Version Control should also be checked. Also, tool framework should be compatible which will be used to integrate with other tools like a commercial dashboard, bug tracking tools, reporting tools.
In the end, conducting a good feasibility study is one of the important areas when we are going to start implementing test automation project which will give us a desired outcomes at the end.
Author: Abhishek Jamwadikar