About Ali Khalid

This author has not yet filled in any details.
So far Ali Khalid has created 208 blog entries.

The engineers hiring dilemma

By | September 5th, 2018|daily post|

Mostly ideal candidates don’t know how to sell themselves, and the ‘not so ideal’ ones sometimes know exactly how to..

Ideal candidates are good with technical skills, they know the’re stuff and are passionate about it

Since they spend more time polishing their skill, might not be as great communicators or leaders

Hence don’t know how to sell, and are difficult to find and persuade

Not so ideal ones lack technical skills, and sometimes make it up by being good at selling

They know how to up-sell and might be good communicators as well

They come up easily in the net, but can be hard to fish out,

And, IMHO, can be equally destructive for your team

So the trick I use is to stick to the few fundamental traits/skills only, and do not compromise on them.

Tomorrow I’ll talk about the candidates I call ‘unicorns’. Want to guess..?

Eleventh Hour Changes

By | August 8th, 2018|daily post|

Small code changes at the 11th hour?

It’s always a very tricky question, but here’s how I handled it

There were some fundamental changes we were working on for our UI automation project

We were not able to get to the changes in time and release time was upon us

Despite the very urgent need to check in those changes, we holded off

The dates were changed a few times but still we didn’t try to ‘sneak in’ the change

Deciding against releasing a featue is surely more stressful than this case,

But the fundamentals are the same.

I talk more about this in the linked article:

The ‘not’ so small code changes

#QsDaily #Automation #ReleaseWisdom

What is Compatibility Testing

By | August 7th, 2018|daily post|

How to do Compatibility Testing?

Wrong question, first let’s talk WHY compatibility testing.

We all know it’s meant to test our AUT’s UI on different front-end platforms (browsers, devices, OS etc.)

But it’s paramount to understand what creates the difference when running on different platforms

Let’s take a web app running on a browser for example,

It would help to understand the different components of a ‘browser’ and what portions are different

Each browser has a different ‘driver’, e.g. Chrome uses the Gecko driver.

This causes it to probably display a piece of JavaScript slightly differently than let’s say Firefox.

I’ve seen compatibility tests meaning “Run ALL tests on each device / combination)

Instead, just run tests which are checking the ‘JavaScript’ or ‘UI’ functionality of your app

The rest will be the same on every browser

#QsDaily #Automation #CompatibilityTesting #Testing

Jenkins just for Automation

By | August 6th, 2018|daily post|

Jenkins benefits even if you are not using a CI process,

Having the collective results in one place has a lot of advantages

Can get results from different tools (might be using separate ones for UI, API and unit level) in one place

Even for one tool, having all parallel runs in one place is a big blessing

Secondly can have a combined history of all the results (in Junit format used by Jenkins by default)

Thirdly, it allows for parallelization to your tests

To scale your automation, this is going to be a must

Number Four: One can centrally control the automation execution resources from one place

Having parameterization will make things even more easier

Evolution in Automation

By | August 5th, 2018|daily post|

Evolution in automation didn’t start just few years ago.

It’s been around for decades and here’s a crude synopsis:

> 1980’s: computers found their way into businesses.

> 1985: First wave of automation tools started.

> 1990’s – Advent of GUI bases OS like Windows 3.0, UI based automation tools start to pop up.

> 1995 onwards: In the race to dominate the UI automation market, eventually WinRunner dominated.

> Around 2000: New technologies like Java jump in; web takes off. New paradigm shift, from desktop to web.

> Around 2004: First version of Selenium RC introduced.

> Around 2005: WinRunner becomes QTP after the acquisition by HP.

> Web has built a lot of momentum, big push to support web UI automation started.

> 2007: Selenium Webdriver’s first version launched.

> 2007 – 2008: iOS v1.0.x released, Android v1.0 released, Mobile is born.

> 2008: Cucumber is introduced.

> 2009: Mike Cohn introduces the Automation Pyramid.

> 2014: Appium v1.0 is launched.

> Meanwhile mobile has taken off, cloud computing is picking momentum and CI/CD is spreading in the backdrop.

> 2016: Jenkins 2.0 released.

> 2018: Docker CE is launched.

* Dates are BALLPARK VALUES, just to give a crude timeline

hashtag#QsDaily hashtag#Automation hashtag#HistoryofAutomation

Automation ROI

By | August 3rd, 2018|daily post|

Automation ROI calculation

It’s not about calculating man hours saved

While automation has a lot of benefits,

Equating time spent by a tester to a machine running the test is not accurate.

Most people (including myself in the past) calculate automation ROI by man hours saved

Automation is provides only data points, they do not necessarily mean a failure.

A person has to interpret the data and conclude if we have a failure.

But then how does automation benefit us?

Some high level points in the linked article:

Does Automation Save Money?

#QsDaily #Automation #ROI

Learning API automation

By | August 2nd, 2018|daily post|

How to learn API automation?

I’d follow the following steps:


Don’t start with instaling an API automation tool


Do NOT START with installing an API automation tool, learn what are API’s first then think about tools.


Understanding how APIs / the HTTP request / response works. Lots of tutorials out there.

A video covering the basics linked in the comments.


Test some sample APIs with POSTMAN.

That would give you an idea of how API calls are constructed and some common responses

You can try using this website as a sample:


Look into learning RestAssured.

There are a bunch of courses out there on it. It can work in parallel with Selenium.

All you need to do is just add the Maven dependency –

I’m using RestAssured with spring Boots!

#QsDaily #ApiAutomation #Automation #API

Automation is NOT just UI Automation

By | July 31st, 2018|daily post|

TestAutomation != Ui_AutomationOnly;

AutomationInTest == UI_Automation + API_Automation + UnitTests + WhateverYouCanComeUpWith; // This can be a long list

Any mundane test programmed to be checked through a tool would classify under automation

Since UI automation is the most widely implemented form of automation, it has become synonymous with automation

API automation is very valuable and should come directly under an automation engineer’s core responsibilities

Often since we start off ‘not as aware’ about the technology stack, we’re not really sure how API testing is done

Linked article stacks up UI vs API automation to illustrate the benefits.

#QsDaily #ApiAutomation #UiAutomation #Automation

McCabe Code Complexity

By | July 30th, 2018|daily post|

Configurability and complexity go hand in hand

Thanks to Thomas J McCabe for proving this concept

I have to say, over time things do get streamlines when layers upon layers of abstraction are added

But while developing a product, or automation framework, the more configurable we try to make it, the more complex it becomes

For that reason, Thomas McCabe came up with this algorithm to calculate complexity

Embedded / IoT devices standards dictate to keep the McCabe cyclomatic complexity (Code complexity) below 30

It’s not a bad idea to calculate your code’s complexity level and stick to a limit

Makes life a lot easier down the road.

#QsDaily #Automation #CodeComplexity

Learn automation or go technical

By | July 29th, 2018|daily post|

Want to learn or hire for automation?

“To be technical or not to be, that is the question”..

While speaking at a conference I tried to outline the journey of a tester

While there were a lot of lessons to learn, the premise was to focus on learning the underlying technology

Familiarity with just an automation tool will not bring the results you want, for both, as an employer or as an employee

What you really are looking for is a technical background AND be able to program tests at the same time

#QsDaily #TestersGoingTechnical #Automation