Saturday, September 3, 2016

Keep an eye on the tooling

Over the last few months I have been really busy at work with a Java/Selenium/JUnit/FitNesse based framework and I think this is awesome and fun to do. On the other hand, it is an established framework and most of the work has been building new testcases with the available building blocks at hand, using the tooling and techniques already there.
Nothing wrong with that, it enables one to hone skills in a very specific department and some people love being a specialist.

Just that I am curious and now that I understand these workings, I want to know what else is in the market so I made a list of tools to learn. In an earlier post there were a few of these but I want to be inclusive and be sure most is covered. Also this is a reminder to myself that all tooling is relevant and I believe that of the things listed, an automation tester should at least know the basics, the internal architecture and how to set it up in your environment.

For the above goal I build separate projects, all using the code base I have for the MantisBT automated test suite. Whenever it is working to an extend that is satisfying to me, I upload to github so check there for examples. Also, after uploading a new blog post will appear here detailing my sources and how I went about setting everything up so hopefully someone else can use it to their benefit.

The latest list is here, this excludes anything I am already familiar with. Also I try to only list open source tools as I really like the philosophy behind it.

Test Frameworks
Geb, an automation framework using Groovy for headless browser testing
Cucumber, a framework for Behavior Driven Development Test Automation (that is a lot of capitalization). Uses Gherkin as a scripting language.
JBehave comes with a description similar to Cucumber. Cucumber has a higher market relevance so I'll look into that first.
Mockito is a framework for Test Driven Development and mocking in Java.
Spock / JUnit / TestNg are testframeworks for unittesting Java (and other) development. Looking into the differences and specific use for each is part of the fun.
Protractor, an AngularJS test framework build using Selenium libraries. This is not likely relevant anytime soon but good to have listed here.


Continuous Integration Tooling
Jenkins. The leading open source build automation server. Nuff said.
Bamboo. Not open source tool build by Atlassian who are best known for JIRA. There is a small demand in the market for this, just like there is for the HP ALM scripting language UTF. I am listing them here to show I did not forget about them but will most likely skip them both.
Gradle, an open source build automation tool with a company behind it that offers consulting and services.
Docker,  an application container engine
Chef, infrastructure automation tooling
Puppet, also infrastructure automation tooling but more of an enterprise feel
SaltStack platform or Salt is a Python-based open-source configuration management software and remote execution engine.

Languages / Protocols
YAML, A straightforward machine parsable data serialization format designed for human readability and interaction with scripting languages such as Perl and Python.
JSON (JavaScript Object Notation) is a lightweight data-interchange format.
Groovy is an object-oriented programming language for the Java platform.
PERL is a family of high-level, general-purpose, interpreted, dynamic programming languages
JavaScript  is a high-level, dynamic, untyped, and interpreted programming language.
PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language.
Ruby  is a dynamic, open source programming language with a focus on simplicity and productivity.
Python is a widely used high-level, general-purpose, interpreted, dynamic programming language.

Test Tooling (aka Misc)
HTMLUnitDriver This is currently the fastest and most lightweight implementation of WebDriver. As the name suggests, this is based on HtmlUnit.
JMeter Graphical server performance testing tool, for both static and dynamic resources
SQuirreL SQL as an alternative for TOAD in talking to your SQL server.
SonarQube is an open source quality management platform, dedicated to continuously analyze and measure source code quality

No comments:

Post a Comment