About Ali Khalid

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

Plan what to test before automating

By | November 6th, 2018|daily post|

Building a test arsenal is THE MOST important aspect of automation,

Yes, that’s right for automation, because the automated scripts are as good as WHAT they are ‘checking’..

Often the focus shifts from inadequate testing practices to directly building automation,

While investing in automation is essential, equally important is ‘finding’ the scenarios to test.

Unless there is a great ‘Testing acumen’ built within the team, that automation is not going to give the desired results.

All automation will do is reduce the ‘checking’ time you spend, and if you are not very sure what to test, then what’s the point?

It’s like trading in a car for a jet, but not sure in which direction to go in..

#QsDaily #automation #testing

Employers and employees finding the right fit

By | November 5th, 2018|daily post|

A lot of candidates have a hard time finding jobs,

And employers have a hard time finding good employees too, here’s my thought on that..

Employers are looking for a very long (and many times invalid) set of skills, giving what’s really important a low priority.

Similarly, employees are not always clear on what they enjoy doing, and most end up hating their 9 – 5 jobs.

The answer, IMHO, is to find what you as a candidate are passionate about and love to work on,

And the employer to find our their core values and look for people sharing the same belief system and ENJOY working on that craft.

E.g., it’s not necessary every Java developer with 10 years of experience is passionate about working in that field (tragic really).

In the linked post (below) I talk about finding what you like doing and employers finding people who align with their values.


The passionate knowledge worker

API status codes

By | November 4th, 2018|daily post|

First, what are status codes?

For each HTTP request, there is an HTTP response generated.

There are some standard ‘status codes’ indicating if the server understood the request.

Common ones are 200 (Ok), 404 (Page not found), 500 (Internal server error) and so on.

While developing API’s sometimes they are not designed to be used by anyone other that the product’s own front end.

They can therefore become a bit sloppy in generating HTTP responses, since the front end code is going through the response body anyway.

This ‘might’ work for a handful of people, it’s generally not a great practice, and certainly makes things harder for API automation.

On that note, for automation folks even if the status codes are not used correctly, still do verify them.

Links to resources on understanding HTTP messages and responses.

The passionate knowledge worker

By | November 3rd, 2018|Management|

One of the biggest problem employers have is they are not able to find / or get their team passionate about what they do. And the biggest problem employees have they are not passionate about their 9 – 5 either. Quite silly if you think about it isn’t it?

So, I guess everyone should take a chill pill and get a compass to find what they really like. Off course that is easier said than done, but it’s not as hard as we often think it is either.


Finding what makes you happy

While we all would assume spending days on a resort sipping margaritas would make us happy, I think that happiness might not last long. We are driven by purpose, and just having fun is no purpose. As human beings we are wired to work towards a higher purpose, that’s how our species survived and how success is achieved.

To recap we need purpose which has to be selfless. So how to find that purpose? I wouldn’t imagine for there to be a silver bullet for this. However, here are a few ways that might help.

Find what activities you absolutely dislike or hate to do. I’m mentioning these early on as these are easily spotted. For example, for me doing brain dead work is something I hate. How do I know this? I tried doing brain dead work on multiple occasions and very diverse activities, the only common thing in them was brain dead, and it absolutely pissed me off. So, anything which does not have to do with deep thinking, that’s a big ‘no’ for me.

Next try finding what things you like to do. These are sometimes not as easily spotted but can be done with little attention. Again, I tried to figure out what activities made me happy (apart from watching Dwyane Johnson and Leonardo Decaprio’s acting). As a child I remember I loved to play with Lego or board games like monopoly. Growing up real time strategy was my thing. And during my engineering years I found my true love, programming. What was common in all of these though was building things (which off course needed thinking).

Having these few points, it was rather easy to find something I was passionate about. I must admit, I was not assertive in always doing what I loved, rather always played the hand I was given, but tried to somehow find something, in my subconscious, understanding I had developed for things I disliked and loved to do. And over time eventually I found an industry I could be passionate about and loved working in every minute of my life – Becoming a technical tester. Which meant not just learning automation and programming, but also learning how different software products were developed and worked inside out.


The employer’s dilemma

Now for the two groups we talked about earlier, the employee and the employer, how should they deal with this? Here’s my experience:

When hiring, employers tend to publish a ‘thesis’ of skills they’d like to see in the unicorn candidate, even if most of the skills mentioned might never be used in the candidate’s entire tenure. I find this to be very destructive and a waste of time for everyone.

Focus on the very few skills you want the candidates to be good at, and ONE they have to be passionate about. If they love doing the job you want them to do, they’ll be self driven and motivated. But the problem there is, not everyone has enough self awareness to know what they are passionate about. So, you’d have to judge for yourself if they are passionate about the subject matter you are interested in. My thoughts on hiring automation engineers can be read here.


For employees

Giving motivational talk about following your passion sounds very nice, but walking the talk is quite different. Finding a career that you love working in is not easy. I know passion does not pay bills. You have to play the hand you are given, but never loose sight of where you want to go.

A great example of this is James Dicks. I stumbled upon his profile by chance on Linkedin and was confused for a while going through his career history. On reaching out to him I found he was always passionate about flying. But to get there he needed a lot of money to get flight school training. So, he started working as a software developer. After years of writing code and injecting cash into his pilot training dream, he finally was managed to complete his flying hours and start commercial flying with Emirates and now Britsh Airways!

While this fairy tale might seem a far-fetched reality, it’s not as much if you think about it. The human body is highly adaptive to any circumstance. So long as you are moving towards your goal, serotonin (a chemical in our blood) will give the motivation you need from time to time.


Bridging the gap

Hiring a person or getting hired is not about if someone is good enough or not, it’s about aligning values and aspirations. Employers should give more weightage to attitude, which means looking for aligning values. For candidates understanding the company’s vision, values and culture would help them decide.

Monetary compensation is not mentioned here, because that’s a given. While this is a tricky thing to manage on both sides of the fence, fair compensation for the skill set needed and brought to the table can be used as a general guideline to follow.

While hiring passionate knowledge workers is the hardest part of running a business, it is the most crucial too. In the age of information, knowledge, experience and skill is the king. The only thing which will off-set that difference is attitude and passion. For an employer. having a team passionate about your goals, and for an employee, working with a team in alignment with your values is the ultimate prize.


Success is uncomfortable

By | October 28th, 2018|daily post|

Success is always uncomfortable

And it never reaches the point where it’s automatic.

Success lies outside the comfort zone,

That means we have to learn to be accustomed to being ‘uncomfortable’.

One might think after a while it might become automatic,

unfortunately it never goes to auto-pilot no matter how many years of practice you have.

It might become ‘very easy’, but never automatic.

And when I think deeper, I feel this is a good thing, it really is.

Life will keep throwing hardships and curve balls at us.

Unless we are in the HABIT of being uncomfortable, we might get knocked out in the first round.

“I don’t count my sit-ups; I only start counting when it starts hurting because they’re the only ones that count.” – Muhammad Ali

Network equals net worth

By | October 25th, 2018|daily post|

“Your network equals your net worth” – Grant CardOne

The addition I make to this, “networking for the sake of giving”..

I’ve tried to share and be helpful as much as I can

I have my moments of weakness when I loose faith, but I try to do my best.

The past few weeks I have seen a small portion of that return.

So many good wishes and kind words from my superiors, colleagues and friends,

I had faith in the return, but this is surely more than i expected.

For all out there learning to genuinely give without return, it’s an amazing life to live,

Have faith, the return is there and it’s many times more.

“The trick in life is not what you can get, it’s what you can give” (Dr Suzan Jefferson)

It will show itself in time, be patient, be your higher self, be awesome.

Before I used Jenkins

By | October 20th, 2018|daily post|

Before I had used Jenkins, never felt the need for it.

In reality, I ‘Didn’t know that I DIDN’T KNOW!’ (Stages of knowledge)..

For a long time, I never felt the need for it, nightly runs would work fine, and life was merry

The ‘itch’ began when other team members were not able to access the reports easily

The common solution to this is sending a ‘heap’ of emails for which then the receivers have to use ‘rules’ to pile them in specific folders straight away

All I wanted was a central place from where everyone can access the results

As time passed and we became proficient with Jenkins, now I feel we cannot survive without it!

When I think back to the ‘simpler’ days, there was A LOT we were not able to do and facilitate consuming automation’s results

Bottom line, if you are not using some form of CI tool like Jenkins, do consider it even if there is no plan for CI / CD in your team.

#QsDaily #automation #continuousintegration #jenkins

Are all automation frameworks complex?

By | October 19th, 2018|daily post|

“Is every automation framework as complex as what we have learned”?

A question from one of the automation training participants, this was my answer:

“Certainly not, most projects DO NOT have such a complex framework, few companies would be happy if you could just write a few lines using Selenium.”

“However, the teams that make a difference and don’t get fired few months after they’ve started, DO have complex frameworks like this one”

In the training we did a simple test with all the code in one file, it seemed very simple and easy to understand.

The next step was to build a framework and learn how to ‘architect’ a proper structure, which off course seemed hard and unnecessarily complex for one test.

The easy way is not necessarily always the best way. Be sure you do the ‘right thing’, not just the easy one.

BTW the ‘easy’ automation scripts have a flakiness percentage anywhere between 30 – 80%, you’re better off NOT doing automation at all there.

The hard way can get you a flakiness percentage UNDER 2%, makes all the difference.

#QsDaily #automation #frameworkdesign #training

Non-verbal communication

By | October 17th, 2018|daily post|

Around 60 – 96% of communication is non-verbal as per different researches

What does that mean for us testers?

The impact of this is VERY LARGE, however here was one lesson I learned and shared with my team today:

We humans are communicating or sending messages to one another all the time

Even when we are not talking to someone, we still are communicating.

Can you guess how and why?

Most communication is ‘NON-VERBAL’,60 – 90% communication is still going on depending on the circumstance.

And we do this all the time, when we someone pass by, we do instantly create an impression of that person in our head, willingly or unwillingly

That’s non-verbal, and its far more important than I used to think about it.

A tester’s job revolves around (or should revolve around) A LOT of communication, and we NEED to be on speed terms with others

To come across as an open and welcoming person will go a long way in communicating effectively with developers, support and other people in the company.

It will set the tone to a very favorable condition helping the exchange of information and ideas.

#QsDaily, #testers #communication

Object life cycle – Waits

By | October 16th, 2018|daily post|

The object life cycle and waits

Firstly, here’s what I call the ‘object life cycle’:

In UI automation objects we use have a specific pattern that keeps repeating.

These steps are 1) Wait for object, 2) Find object, 3 Perform action on object – Repeat.

I call this the object life cycle, and it is the lifeline for a UI automation framework.

The first step wait is – Wait before ‘finding’ EVERY object.

Web communication is asynchronous, which means it all depends on the timings of user actions and responses,

That means, we can never be sure of timings for any interaction.

Therefore, according to Murphy’s law, ‘What can go wrong will go wrong’, prepare for the worst.

In our context, the object we want to work with will NOT be there, so be prepared for it.

BTW – Adding a 5 second delay (static delay) is BAD, because it’s always going to be less than needed or more than needed

Delays have to be dynamic (based on a condition), to wait for the precise time you want them to.

#QsDaily #automation #framework