Manual testing is a time consuming process. In addition, regression testing, because of its repetitive nature, is error-prone, so automation is highly desirable. Automation Testing helps us to ensure the quality of our growing applications. There are many open source software testing tools in the market and identifying the right tool for user’s need is challenging.
Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). It has easy-to-use tabular test data syntax and it utilizes the keyword-driven testing approach. Its testing capabilities can be extended by test libraries implemented either with Python or Java, and users can create new higher-level keywords from existing ones using the same syntax that is used for creating test cases.
Robot Framework is created in Python which can be implemented on all major platforms. Among other open source tools, Robot Framework seems to be one of the very few tools, which supports multi platform environment and it is maintained regularly.
- High-Level Architecture
- Simple Tabular Syntax
- Data-driven Test Cases
- Separate Test Data Editor
- Clear Reports
- Detailed logs
- Generic test libraries
- Webtesting, Swing, SWT, Windows GUIs, databases, SSH, Telnet,…
- Remote test libraries and other plugins for Jenkins/Hudson, Maven, Ant,..
- Text editor support: Emacs, Vim, TextMate
Robot Framework is a generic, application and technology independent framework. It has a highly modular architecture:
- The test data is in simple, easy-to-edit tabular format. When Robot Framework is started, it processes the test data, executes test cases and generates logs and reports.
- The core framework does not know anything about the target under test, and the interaction with it is handled by test libraries. Libraries can either use application interfaces directly or use lower level test tools as drivers.
- The Robot framework processes the test data when it is started. The framework does not need to know the target system, but utilizes test libraries to interact with it. The libraries use application interfaces or separate test tools as drivers.
- The Robot framework supports four different file formats. The tabular format can be defined using HyperText Markup Language (HTML), tab-separated values (TSV), plain text or reStructuredText (reST). According to the Robot framework user guide, plain text file format is recommended.
- To make Robot Framework superior, Framework can use the Remote Libraries to write own Test Libraries in any programming language that supports the XML-RPC protocol and run them on different machines.
- Enables easy-to-use tabular syntax for creating test cases in a uniform way.
- Provides ability to create reusable higher-level keywords from the existing keywords.
- Provides easy-to-read result reports and logs in HTML format.
- Is platform and application independent.
- Provides a simple library API for creating customized test libraries which can be implemented natively with either Python or Java.
- Provides a command line interface and XML based output files for integration into existing build infrastructure (continuous integration systems).
- Provides support for Selenium for web testing, Java GUI testing, running processes, Telnet, SSH, and so on.
- Supports creating data-driven test cases.
- Has built-in support for variables, practical particularly for testing in different environments.
- Provides tagging to categorize and select test cases to be executed.
- Enables easy integration with source control: test suites are just files and directories that can be versioned with the production code.
- Provides test-case and test-suite -level setup and teardown.
- The modular architecture supports creating tests even for applications with several diverse interfaces.
Benefit of working with Robot Framework is that writing test cases follows natural work flow with test case preconditions, action, verification and finally cleanup.
Real language is used for keyword description, so it’s easy to follow test case – even for non technical person, which, together with its simple usage and easy library extension, make it great tool for test case automation.
The cost of automating a test is best measured by the number of manual tests prevented from running and the bugs it will therefore caused to miss, and this is probably the biggest strength of the Robot Framework.