Most often, product features are required to be deployed to production frequently, rapidly, reliably, and without any downtime. In the DevOps approach, the time span between code commit and deployment to production is quite short, maybe within an hour. This makes test automation quite challenging. The existence of a framework may not suffice to meet the rapid pace at which software is developed and released. This article talks of a solution to this problem; an approach to building a test automation layer that helps automate test cases by using reusable, ready-to-use functions/keywords. An approach popularly known as Scriptless Test Automation overcomes the issues mentioned above and benefits organizations at the earliest stage.
To know more in detail about scriptless test automation we should first understand the limitations of script-based test automation.
Limitations of Script-based Test Automation
- Test automation based on scripting/record and playback is mainly performed on the UI part of the application. Some of the limitations of this approach are”
- Requires programming skills: A non-technical person will take time to learn/acquire the skill to script since the scripts are developed using tool-specific languages.
- Since UI automation heavily depends on the UI components, scripting can start only after all the UI components are created, adding to the delay in keeping at par with the releases.
- Script creation by different people across the different areas may result in variation in the coding style, resulting from higher effort in maintainability.
- In modern methodologies like Agile, DevOps application codes are committed and built frequently and the changes in UI may break the automation code. The team will need to work on updating the scripts more than working on new areas, thus creating more lag.
- Projects relying heavily on the automation will require a large team to develop/maintain scripts to meet the frequent changes in the environment, application etc.
- Script-based automation is always generated by keeping the technical person in the mind. This makes it difficult for others to understand and provide feedback to improve test coverage.
- Above all, there is a chance of the focus getting diverted from the main purpose of testing, i.e to find regression issues, to fixing script issues.
What is Scriptless Test Automation?
A simple definition for scriptless test automation would be “ an approach to automate manual test cases without creating new scripts in any tool-specific language”. The key highlight of this approach is that it can be used by non-technical users also.
It uses already developed scripts – “Keywords” to build up test cases for the automation run. These keywords will be the most commonly used actions like – “Enter Text”, “Click Element”, “Select Option” etc, and can be easily used to build up a suite of test cases.
Point to note: Scriptless does not mean script-free.
The scriptless approach creates a wrapper that hides the tools and technologies used. Testers do not need to bother about the languages compatible with the tools used for automation.
There is a myth: A good framework that contains reusable functions is the same as scriptless testing. However, the scriptless approach is a superior form of a framework that creates a wrapper that hides all complexities of script-based automation.
Scriptless test automation needs to be designed by an expert who utilizes experience/expertise to create an optimized set of keywords. Most commonly used arithmetic calculations like finding the average, calculating interest, file operations like reading/writing from/to excel/CSV/plain text, etc, database operations like establishing connections to different DBS, fetching data, etc are converted to keywords and kept ready before the application is ready. This will reduce the automation time and enhance ROI right from the initial stages of implementing test automation.
Time taken to fix changes in UI would be lower than in the traditional approach, as all the assets used for automation would be stored in a repository. A change made at the repository will reflect in all instances that utilize the asset.
In a scriptless approach, stakeholders can be involved in the initial stage itself and provide appropriate feedback to ensure the test focus is correct
How to implement Scriptless Test Automation
Following are the steps to implement scriptless test automation
- Select a well-established framework like Robot Framework, Cucumber
- Identify the most commonly used keywords
- Create a central repository that defines assets used in keywords. It can be an XPath / CSS path of elements used in keywords. It can be a key-value pair
- Keys should be unique and aptly named so that even non-technical persons should identify the asset used
- Create a global file that defines the custom values(variables) used in keywords.
- Values to be entered in text fields, selected in the select box, etc. It can also be a key-value pair
- Same as above, keys should be unique and identify the purpose of value being used
- Create scripts for identified keywords
- Keywords should be created in the English language which is easy for everyone to understand.
- Keywords should be group-able to create user-defined keywords.
Advantages of Scriptless Test Automation
- Easy to use: Since the keywords are like English words
- Initial implementation time is greatly reduced: Most of the common keywords are available in global files. The tester then needs to only mention the values for assets and variables.
- With a lesser number of resources, the desired level of automation can be achieved
- Suitable for Agile and DevOps methodologies: the Scriptless approach can cope with rapid changes and delivery models.
- ROI seen at the early stages