Creating test cases for black box testing is tedious for complex applications. It is easy to bias some scenarios and completely ignore others. At the same time it is unreasonable to create an exhaustive test suite due to the complexity of the application.
Here are my random thoughts on automation for 2014.
Creating test data is time consuming for QA. One of the industry standards is to have a room full of people think really hard about the potential use cases and put these cases in an excel sheet. Buisness models can be very complex so it is easy to make a mistake. Even if you don't make any mistakes it's unlikely you have the time or money to fully test the application.
There comes a time as an Automation Engineer that you need to distribute tasks across multiple machines. This normally happens because your not doing web testing so you cannot use selenium grid but you still want to distribute the work load. The traditional1 way of doing this is to split up large chunks of work like feature files and run them on a remote hosts.
We will setup selenium standalone server on a docker image.
Distribute cucumber scenarios across multiple hosts. Balance the load between the hosts with a distributed queue on redis.
VNC can be used to run sikuli scripts on headless machines. We'd like to launch a script on a vncserver without opening vncviewer.
Web Applications normally need to be tested on multiple browsers. We would like to write a single test suite and run it on different browsers.
Selenium 2.0 provides a class called Alert to handle popups.
Sort an array in parallel with fork/join.
Create a subset of Scheme in 100 lines of ruby.
Conky is a light-weight system monitor. Conky can used in the i3 window manager to manage anything from what mpd is playing to the time of day. Conky can be extended with lua scripts.
PhantomJS is a headless WebKit. It is good when running tests on a headless machine or when the tests need to be executed really fast. In this example we will run Selenium WebDriver on PhantomJS.
Data driven testing is a technique that drives tests with data. Data driven tests externalize the test data in a file or in a database.
An example to get started with TestNG and maven.
Avro is a data serialization system. Avro can be used to create compact, fast, binary format for hadoop. Defining data types in avro is significantly easier than implementing the Writable interface in hadoop.
Hello World!
Often an alogrithm needs to aggregate values. Counting how many times a word occurs in a documents is one such alogrithm.