The cave of the testing troll

Automation tools

Reading Time: 4 minutes

I decided to create this small library with useful links and small captions for every open source testing automation tool I know or worked with. Hope it helps.

Automation tool name: Selenium IDE

Selenium logo

Purpose: Functional UI test automation – web.
Official site:
Supported programming languages: HTML, JavaScript
Supported platforms: Practically everywhere you could install Firefox.
Description: Selenium IDE is the first version of Selenium, which started as a Firefox extension. It has recorder and it’s good for creating simple fast checks, but it has some troubles with page loading and more complex scenarios. Output format of test cases is an .html file and you could write JavaScript, which is kinda cool.
Useful links:
Official Selenium IDE docs.
Learn Selenium IDE in 7 days.
Video tutorial for beginners.

Automation tool name: Selenium WebDriver

Purpose: Functional UI test automation – web.
Official site:
Supported programming languages: C#, Java, Ruby, Perl, Python.
Supported platforms: Depends on the IDE and language, but it’s practically multi platform.
Description: Selenium is definitely “the big thing” in automation testing, when you are talking about UI web automation you are most likely talking about Selenium. It’s multi-platform, multi-language and it’s easily adjustable and extendable the way you want it. You could run your tests on almost any browser available (including Tor) and you can approach testing in much more “programmatic” manner. You could easily incorporate various programming “best practices” using various design patterns and OOP. View in links.
Useful links:
Official documentation.
Page Factory
WebDriver/PageFactory tutorial

Automation tool name: Sikuli

Purpose: Functional UI automation testing.
Official site:
Supported programming languages: Python
Supported platforms: Windows, Mac OS, Linux.
Description: Sikuli is a nice tool that’s multi-platform and could be used to automate almost every aspect of the workflow, speaking not only about web, but native functions of the operating system. It easy to use, written in Python, but it has one main disadvantage: it used image compare to execute its tests, which means tests are often flaky and hard to maintain.
Useful links:

Official documentation.

Automated GUI Testing with CTest/CDash and Sikuli

Sikuli, or how I improved my Personal Hygiene using Test Automation

Automation tool name: Appium

Appium logo

Purpose: Mobile functional testing. 
Official site:
Supported programming languages: Ruby, Python, Java, JavaScript, C#, PHP, RobotFramework
Supported platforms: iOS, Android, Firefox OS
Description: Appium is a framework for mobile testing. The way tests are written in Appium might seem very familiar to Selenium tests, since the framework itself supports a subset of the JSON wire protocol and Appium clients which are an extension of the WebDriver clients.
Useful links:

Official documentation.

Great tutorial by SauceLabs.

Setup with C#.

Automation tool name: Robotium

Automation robotium logo

Purpose: Android mobile functional testing.
Official site:
Supported programming languages: Java.
Supported platforms: Android
Description: Robotium is testing automation framework for automating Android application. It is used only in Java and it has really good integration with Eclipse and Android studio. The syntax slightly resembles selen-ish, you have an object that you initialize, similar to webdriver, on which you could execute specific actions, like find element by or some actions like click and send keys. Test could be executed in simulator as well as on real device. It has a recorder version, which might track your actions and repeat them.
Useful links:

Official documentation. 

Android user interface testing with Robotium.


Automation tool name: Protractor

Purpose: Testing automation for Angular JS apps. 
Official site:
Supported programming languages: JavaScript
Supported platforms: Multiplatform. 
Description: Protractor is a really cool tool for testing Angular JS applications and so far the best to do so. Why is that? Because it’s created and supported by Angular’s creators – Google, for that same purpose. Why is testing Angular so tricky and different? Because normal events in other testing frameworks can not handle events that happen from within the Angular itself like dynamic loading of elements for example. The setup is pretty simple, it’s a npm package and it’s built over an instance of Webdriver JS, which means all the goodies from the JSON wire protocol are available in Protractor as well.
Useful links:

Protractor tutorial.

Writing end-to-end tests has never been so fun.

AngularJS Unit Testing – For Real, Though

Automation tool name: Robot framework.

Purpose: BDD/ATDD testing. 
Official site:
Supported programming languages: Python, Jython, IronPython
Supported platforms: Platform independent. 
Description: Robot framework is a framework written in Python, that could be used along with Selenium for testing web pages. The tool itself uses plain text commands and keyword on the base of which tests are generated and commands are executed. 
Useful links:

Official documentation. 

Robot Framework – Test Automation the Smart Way!

Robot Framework – The Unsung Hero Of Test Automation.


Automation tool name: Calabash

Purpose: Acceptance tests for mobile devices.
Official site:
Supported programming languages: Cucumber / Ruby
Supported platforms: Android, iOS
Description: Calabash is a framework that let’s you write acceptance tests with the cucumber syntax (the if-when-then statements). It could be used for automating iOS and Android applications.
Useful links:

Official documentation.

iOS Automated Testing With Calabash, Cucumber, and Ruby

A Beginner’s Guide to Automated Mobile App Testing

Calabash iOS vs. Frank, UIAutomation, Appium and Others

There will be more coming in time.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.