About Ali Khalid

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

Automation and reusability

By | January 16th, 2019|daily post|

Automation helps by doing repetitive tasks efficiently

What happens when your code is not exactly ‘reusable?..

Automation engineers sometimes are trying to script for the immediate test scenario

And forget the whole point of automation was reusability.

This is different from a script breaking from not have good selectors..

Writing similar code across the project in multiple classes / files

And again repeating that in mulitple projects across one on multiple products

So make sure to keep each component of the framework reusable

As reusable as possible, not for just your project, but if synergies exist, between projects as well.

The concept of ‘loosely coupled’ somehwat captures this idea.

#QsDaily #Automation #FrameworkDesign


More on the subject here:


Pillars of Automation Framework Design

Using AUT’s JavaScript methods

By | January 13th, 2019|daily post|

A couple of ways to cope with web browser version updates,

Using the AUT’s own JavaScript functions is one way to mitigate issues, let me explain..

Depending on what type of application you are using, there can be custom JavaScript code running on your AUT

For cases like on interacting with a certain control a custom written JavaScript method is called to collect some data and pass to an AJAX call.

Think about it, wouldn’t the developer be using some methods to write data in the fields? Or read data from them?

In few cases they are the same as the Selenium library would use, however in a few cases there would be some custom methods,

Written by the developer or provided by the framework.

For instance, on entering data in an certain element on the web page, a JavaScript method is called parsing the data and sending an HTTP request.

Now instead of trying to interact with the element through Selenium / other library, call the JavaScript method,

Which is going to be called anyway on the mouse click / enter event, but can save you a lot of grief if Selenium has a hard time interacting with the element due to a browser update etc.

Us Vs Them, or being empathetic

By | December 29th, 2018|daily post|

Working together with teams can be difficult sometimes,

Instead of treating the situation as ‘Us’ Vs ‘Them’, here’s what I think:

All of us have similar desires, dreams and fears.

And each person is operating under certain limitations restrictions imposed by the environment they are in.

Mostly their behavior is driven by goals and limitations around them.

Being empathetic and really trying to understand thier limitations makes things a lot easier

It’s hard, time consuming and requires more attention,

But has lasting results and builds trust.

Granted cannot mot be done for every situation,

But where taking this hard route possible, this can do wonders,

Time and again I have experienced exponentional results with this, more on that in a separate post.

#QsDaily #Positivity #Empathy

Why time is the most important asset

By | December 28th, 2018|daily post|

Time, Money, Freedom; What’s more important..

Time is the single most valuable asset, here’s why:

– There is more than enough money and resources to go around, we’ve trained ourselves to believe in scarcity and spend our whole lives chasing it.

– In this age I suppose freedom is a relative term now, someone is more free than the other based on their circumstance,
– But NO ONE is absolutely free of any consequence. You are as free as you ‘think’ you are!

– The asset which is truly scarce is time.
– It cannot be replicated, or bought. A second gone is lost forever.

Successful people utilize their time to the fullest. The one to manage time the best will win.

An inspiring video from Arnold Schwarzenegger where he talks about his success and how he managed his time shared below.

#QsDaily #time #success

Most precious asset

By | December 27th, 2018|daily post|

What is the most precious asset on earth each person has?


a – Money
b – Time
c – Freedom
d – Not mentioned here..

Here are some clues:

– Everyone has it, less or more,
– Everyone needs it, but always under estimate how much they need it, and
– Most of us are easily willing to trade it for other things..

What do you think?

This is improtant for testers to learn,

It teaches us what is important, hence what to prioritize for..

#QsDaily #goals #testing

Cannot automate testing, so no need to automate?

By | December 27th, 2018|daily post|

Since testing cannot be automated, therefore no need to learn automation.

While the first half is true, the conclusion is not..

While collaborating, investigating and reasoning with people cannot be automated,

The kind of applications we are building now cannot be completely ‘checked’ in person either because of:

1. Size of the applications
Layers of abstraction have made things easier to develop, and add features more quickly,
Making applications exponentially grow in size.

2. The complexity level
Desktop apps, to monolithic web apps to native mobile apps to now miro-service architectures,
It’s quickly becoming impossible to test core features of applications without a LOT of different tools

3. Required speed to do the job ‘in time’
A first mover’s advantage can mean the make or break of the company. This coupled with the drastically evolving technological landscape for software development has spiked the need for rapid deployment.

These three things are fundamentally shifting how we can adequately test applications.

We need grunt workers to do the heavy lifting for us,

‘Probes’ to get into the system which we cannot easily test,

Which all points to the need of automation and a LOT of testing tools.

#QsDaily #Automation #WhyAutomate



Automated = losing jobs?

By | December 21st, 2018|daily post|

When non-tech people hear ‘automated’, what does that mean for them?

From past 100 years history, Automated = losing jobs. In testing however, that’s not completely true. Here’s why:

In other industries remedial and repetitive jobs are being automated rapidly, blue collar jobs.

Like car assembly lines, bank tellers, until recently driving cars / trucks and making Pizzas.

With AI and ML, some white collar jobs are also a target e.g. radiologists.

However with testing, actions to ‘test’ a software are not always as simple.

It’s not just a matter of performing some steps from a test case,

It’s more about collaborating, discussing and clarifying requirements,

Challenging the understanding held by different groups and figuring out what the business really needs,

Talking to different groups and communicating the AUT’s actual response.

There are a lot of activities involved in this, especially collaborating and reasoning with people,

Which are not based on a set of principles we can script in advance.

While that does not mean automation tools will not be used (more in the next post), I feel they cannot replace testers.

Mocking JSON test data

By | December 16th, 2018|daily post|

Lots of systems reusing different JSON schemas, which we need to mock,

By using JSON schema / template files to construct and push custom JSON messages to different systems..

Here’s where I have reached so for in solving it and the implementation steps:

Step 1 – Basic structure to push a given JSON file to one system

Step 2 – Add support for more systems to push messages to

Step 3 – Create library to take a ‘JSON Schema’ as a template, and fill placeholders with test data values

The need arises when we have mulitple products to push messages to, all having different JSON message structures,

For testing these systems, instead of having ‘n’ number of JSON files, one per script, I’m thinkging of having standard templates for each product

Which will hopefully make it easier to mock test JSON files, and

Instead of passing the complete JSON, just the template name and a few variable values should do the trick

Still each script might have a sort of ‘config data’ file, but should be quite homogenous within products

Any other ways you’ve tried to implement this, or thoughts on this implementation?

#QSDaily #Automation #MockingData #JSON


How loosely to couple your framework?

By | December 5th, 2018|daily post|

To couple your framework tighty or loosely, that’s the question!

And here is my thought:

The first answer straight away is – loosely coupled off course,

Which is true, but how loosely?

The answer would be highly dependent on the context and usage, so there is no single answer.

Here are some general considerations to think about:

– Configurability
– Maintainability
– Reusability
– Robustness
– Scalability

Unforunately, most of these are polar opposites
– Reusability / configurability vs maintainability
– scalabiliy vs robustness
– configurability vs robustness

The trick is to strike the right balance between these factors,

Which would depend on the context and usage.

To give an example, a common one which I always mention is configurable vs robust,

As you add more features to your application / framework and make it more configurable,

It is bound to be more prone to errors and unknown states in the system.

That’s why we have the McCabe complexity measurement..

Anything else you would consider to determine how loosely your product / framework coupling should be?

#QsDaily #automation #FrameworkDesign #SoftwareArchitecture

Change management

By | December 1st, 2018|daily post|

One of the toughest jobs in an organization is change management

Because we humans don’t like going out of our comfort zone, but it’s equally important..

Those who don’t change will die out, no matter how big they are,

But how to change? I’m no expert but here’s what one of my Guru’s taught me:

“Culture always comes from the top, Change the person at the top, and the effect will trickle down”

To change one person’s mind is easier than changing many at the same time

I know that’s easier said than done, and many of us have thought at some point “I might as well argue with a wall than this person”,

But whenever I’ve tried to push change from the bottom up, it has never worked.

A note to the wise, when building a team, don’t let the culture just grow like a mushroom,

Once formed will be very hard to change, so make sure you’re consciously building the right one.