How to deal with data tables in Cucumber and Protractor


So, today I will give a code snippet about how to deal with Cucumber data tables and protractor.

Following the example:


  • Scenario with data table:
 Scenario: Register multiple users from different countries
   Given I want to register multiple users
    | user  | country  |
    | nicko | uk       |
    | pitty | brazil   |
    | slash | us       |
   When I send the form
   Then all the users should be registered


Remember to create the data table with the headers. Don’t forget that data tables are different from examples, here the first step will create a hash table with the data from the table and send it as parameter. Examples are used to run the same scenario with different variables in each run.


  • Related Step Definitions:
'use strict';

var protractor = require('protractor');
var browser = protractor.browser;
var _ = require('lodash');
var Q = require('q');

var RegisterPageSteps = function() {

 this.Given(/^I want to register multiple users$/, function(data) {
    var promises = [];
    var rows = data.hashes();
    //For each row you will get the user and the country
    _.each(rows, function(row) {
       var user = row.user;
       var country =;

       //Here you can add the promises to perform sequentially
       //you can call the promises passing the user and the 
       //country as parameters
       promises.push((addUserCountry(user, country));

    //You can also have promises to be performed that don't need
    //the parameters from the data table

    //Here you return all the promises
    return Q.all(promises);

 this.When(/^I send the form$/, function(callback) {

 this.Then(/^all the users should be registered$/, function(callback) {


module.exports = RegisterPageSteps;


I have not implemented other functions and steps as the aim here is to show how to deal with the data table in your scenario.

Thank you !

Audio Test Automation – Citrix (GTAC 2016)

Hey guys, today I will share the slides about the Audio Tests on Citrix – GTAC 2016:


Audio Quality Tests and the current challenges, presenting Dan Hislop and Alexander Brauckmann from Citrix.


Some products from Citrix.


Many challenges we need to face with audio tests: We have limited number of audio test experts, manual audio tests are cost, some scenarios are hard to manual simulate.


Always improve the quality of the sound that you are receiving and sending. You can live with poor video quality, but you can’t with a poor sound quality. If you miss a key word, you will not understand the context.


The Audio Test Pyramid shows what you need to start testing. Following this, first test if you are able to receive the audio (Pipes are connected), then check if you are receiving the audio (Water is flowing through the pipes) and the last step is test the quality of the sound (If you can drink this water).


This is how to improve the quality of the audio automation, sharing the common libraries for the client teams, so they are able to test different scenarios.


Here you have all the key components: You have the audio data, which will be injected into the first client. Then, you have the second client which will capture the audio from the first client and compare the sound quality between the input and the output.


Here you can see all the various platforms you need to test the clients. The input and the output are commons, but the transition of one client to another will make sure the audio is stable on different environments.


The client upload the audio files to the service and in the end fetch the quality results.


Depending of the MOS score, you are able to confirm the quality of the audio. This score compares the sent and the received audio.


Type of the audio tests you can perform: Frequency Analysis, Speech Presence and Amplitude Analysis with different types of voices, will give you more confidence that the audio works with various voices (kid, adult, women, men, etc).


You can watch the demo here, it will start at 5h 13m 11s:

Thank you GTAC 2016 and Citrix professionals for sharing this !

All Day DevOps

And we are having the All Day Devops sessions between today and tomorrow as well:

Find your session:

Automated Security Track



Modern Infrastructure Track:




Google Test Automation Conference 2016

Hey guys, jump on and watch the GTAC2016. #gtac2016


Automation Plan and Strategy

Hey guys, in this article I will not talk about automation tools or automation frameworks, but I will talk about how to set the strategy and choose the key scenarios and priorities to build your automation strategy.


Who is most interested to have automation tests running ? Quality Assurance team.


Why ? Because the regression tests that are always performed by the QA engineers will now be performed by automated scripts. They use the automation to run detailed, repetitive, and data-intensive tests automatically.

It helps to improve software quality and make the most of their always-limited testing resources. Automated testing will shorten your development cycles, avoid repetitive tasks and help improve software quality.


Why should we implement an automation test project ?

  • It helps to test faster (Failures will be reported ASAP to be fixed)
  • Allows them to test substantially more code (Able to build deeper tests)
  • Improves test accuracy (Avoid human mistakes)
  • Frees up QA engineers so they can focus on tests that require manual attention and their unique human skills (Exploratory tests)


For a manual testing project the cost consuming factors are:

  1. People
  2. Tools – Test/defect management
  3. Infrastructure – environment
  4. Time
  5. Training


For an automation project, in addition to the above items it needs also:

  1. Automation tools
  2. Add-in for test management tool integration
  3. Add-in to support AUT (like SAP, oracle etc)
  4. Framework set up
  5. Tool specific training


What determines the success of your automation ?

“Are you able to generate a better ROI (Return on Investment) in comparison to the manual route”? – If not immediately, eventually.


Test Plan


  1. Decide what Test Cases to Automate
  2. Setup a Continuous Integration Box
  3. Select the Right Automated Testing Tool
  4. Divide your Automated Testing Efforts
  5. Create Good, Quality Test Data
  6. Create Automated Tests that are Resistant to Changes in the UI




  • Add repetitive tests that run for multiple builds.
  • Add tests that tend to cause human error.
  • Add tests that require multiple data sets.
  • Add frequently used functionality that introduces high risk conditions.
  • Add tests that are impossible to perform manually.
  • Add tests that run on several different hardware or software platforms and configurations.
  • Add tests that take a lot of effort and time when manual testing.
  • Divide your projects in phases and prioritise them.




  • Name convention
  • Reports
  • Select the right automation tool
  • Browsers and its versions, desktop or mobile size (Layout responsive)
  • Platforms (Windows, Mac, Linux)
  • Multiple mobile devices (Portrait and landscape)
  • Continuous integration (Frequency which you will run the tests)
  • Locations for test assets to be stored