There exists a vast amount of test automation frameworks. As innovations move forward, the usage of traditional keyword driven frameworks is more and more considered as being outdated. Not all keyword driven frameworks are actually on a standstill. An example of a continuously improved and updated framework is Robot Framework which developed from a niche product to a powerful open-source state of the art tool. As some other frameworks slowly deprecate, Robot Framework counts on high extensibility and has also recently included robotic process automation (RPA) into its portfolio.
Robot Framework is actively supported by its community and is platform-independent, being implemented in python.
Supporting the Generic Test Automation Architecture Layers
The modular architecture of Robot Framework intuitively supports the layers proposed by the ISTQB® generic Test Automation Architecture (gTAA).
Robot Framework itself could be seen as a tool which can be used into a test automation framework or be used on its own as the automation framework itself. With Robot Framework, any layer is highly extensible and provides options as e.g. test management tool orchestration or adding Jenkins into the test execution layer to run the tests or tasks via Robot Framework.
IDEs like Pycharm already provide extensions for Robot Framework development. One given advantage of Robot Framework is the native usage of Python code as a usable keyword inside the tasks on the fly. Figure 2 shows an example of python code being used in the Robot Demo on robotframework.org. If imported into Robot Framework, the code is immediately available as keywords into the framework by no further efforts besides. Figure 3 provides how the library is natively used inside a given scenario, providing also an example of gherkin-style test cases.
Test cases can also be for designed acceptance test-driven development or acceptance testing. The option to integrate libraries for operating system utilization, selenium, iOS, Android, databases, web services and much more provide a high range of usage for the framework.
Another Advantage of Robot Framework is the immediate disposal of html and xml reports. This generates execution output that could immediately be deployed on e.g. a web server to read the reports of execution online. Such functionality with Robot Framework integration exists for example already in Jenkins. Also, test cases can be tagged, categorized and prioritized – which is also available on test rerun functionality to e.g. execute failed test cases only.
Easily installed but the structure is the key
What makes Robot Framework outstanding to other traditional keyword driven frameworks? Of course, the given examples seem simple. We at Sogeti already have great experiences with Robot Framework complex system landscapes, including API Testing, E2E Testing, Web Application Testing, and Back End Testing. Robot Framework has a vast amount of possibilities, especially as it is adaptive to our own kind of preferred usages. It has proven to be a universal framework that was capable to perform various types of testing (excluding performance testing) and to provide an option for different technical levels of test engineer skills. The Framework delivers many in-house options without giving too many limitations.
The newly added possibility to also provide RPA testing will definitely keep it on the field for further usage options, e.g. add-ons for graphical workflow models for Robot Framework executed testing could be made possible. The focus on the development of the tool seems to always have been extensibility and our project experiences show that the freedom in tool evaluation including very powerful integrated functionalities are something that should not be missed out if searching for the correct option for a test automation framework.
[References]
ISTQB® Advanced Test Automation Engineer Syllabus, Version 2016, invoked on 30/03/2019 on https://www.istqb.org/downloads/category/48-advanced-level-test-automation-engineer-documents.html
Manifesto for Agile Software Development invoked on 30/03/2019 on https://agilemanifesto.org/iso/en/manifesto.html
Robot Framework Website, invoked on 16/07/2019 on https://robotframework.org/
Robot Framework User Guide, invoked on 16/07/2019 on http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html