alikhalid

About Ali Khalid

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

Deciding what to automate

By | July 17th, 2018|daily post|

Deciding what to automate – part 2

Once you what to test, find the subset of what to automate

Again everything you want to ‘test’ cannot be ‘checked’

It’s best to be smart about what should be automated

While the most common answer to this question is ‘automate what we can’

There’s a fundamental flaw in that, not necessarily all we CAN automate is WORTH automating

If a feature is hardly changed and used, automation efforts are best spent elsewhere

Conversely, if a certain feature is time consuming to test and has to be done every time, I’d rather automate that feature.

More factors IMHO to help deciding what to automate here:

Deciding what to test

By | July 16th, 2018|daily post|

Deciding what to automate – part 1

Find out what to test first..

Often the discussion about what to automate ends with ‘let’s automate everything’…

Around a year into it the team realizes we might never be able to automate everything

Plus the maintenance cost turns out to be much higher than expected

Eventually not seeing enough progress with automation

While this scenario is the result of multiple mistakes along the way,

The first IMHO is not taking the time to formulate a testing strategy first

We can NEVER test everything, let alone automate it

#QsDaily #Automation

Find out what to test first, more here:

Trust the process

By | July 15th, 2018|daily post|

For my tester friends out there struggling and not seeing results, be it learning automation, learning technology or whatever

“Trust the process” – @John Somnez

The results are not up to us. All we have to think about is the little decisions we make in our daily lives

Every person intends to do great things, but then why only a few make it?

The answer I like the most: “little decisions we make every day without even thinking that is a decision”

A lot of small sloppy decisions every day can take you far off course without us even realizing

So trust the process, have faith, in time it will pay off

Every overnight success has a decade long struggle behind it. Little decisions matter. Hang in there..

#QsDaily

 

Parameterizing Jenkins jobs

By | July 12th, 2018|daily post|

Parameterizing Jenkins jobs

If you’re not doing it, or having problems with it read on.

Design every piece of code in or around your automation framework keeping maintainability, reusability, scalability and robustness in mind (Pillars of framework design)

In that spirit your Jenkins job should be parameterized

This will allow you to select different AUT versions, browsers, tests to run from Jenkins itself

Even if you don’t need it right now, you SHOULD in the future

In case your automation tool is having problems reading parameters from Jenkins

You can export them into different file formats (JSON, XML etc.) and read those settings on project initialization of the automation tool

Easier said than done, but with patience and trial and error, you’ll get there

#QsDaily #Jenkins

Checking DB connection

By | July 9th, 2018|daily post|

Problem checking connection to your Database?

I recently learned this trick using Universal Data Link files

There are many methods out there, sometimes could be confusing

For windows users I stumbled upon this neat trick:

– Create a new file with the extension “*.UDL”
– Open the file and enter data:

1. Enter the server IP (Sometimes machine names create problems)
2. Add database username and password
3. Select DB name from the list (should show all the DBs hosted on the machine with IP from step 1)
4. Press Test Connection

and Wala.. you can get your answer

P.S.
Your Spring Boots app might not be connecting to your DB because of using the machine name instead of the IP as well..

For more details:
https://fileinfo.com/extension/udl

#QsDaily #database

Learning Automation

By | July 8th, 2018|daily post|

How to learn automation?

The biggest problem with this question is, it’s not the right question to ask!

We perceive a tester’s career progresses by starting with ‘manual testing’ to ‘automation’ to ‘management’

I don’t think that’s an accurate picture

Mostly we start of in testing as ‘Non-Technical’ (unfortunately)

We deliver greater value once we become ‘Technical’ and learn how the technology stack works

And then when leadership skills are acquired, that gives another boost to our impact, hence a higher pay

It’s not about just automation, it’s about having the capability to create a greater impact on the business’s bottom line

#QsDaily #TestersGoingTechnical #TestAutomation

Life does not happen to you, it happens for you

By | July 7th, 2018|daily post|

“Life does not happen to you, it happens for you”

A line that resonated with me immediately and here’s why

Has it ever happened similar events keep happening in your life?

Is it just bad luck?

I’ve felt there is always a reason for why events out of our control take place

Sometimes we’re able to figure out the lesson we were meant to learn, a lot of times the meaning remains hidden

And until we understand why this is here, different events might keep on manifesting for us to learn

To lean and go to the next stage in life

If we choose to believe everything happens for a reason, we have a better chance at improving and being more content

#QsDaily

Running tests in parallel

By | July 6th, 2018|daily post|

Running tests in Parallel?

It’s not just about what tool to use

1. Why do you need parallel execution?
To reduce execution time yes, but are all the tests running needed? Or can they be executed at different stages of the SDLC instead of one go?

2. Are your tests designed keeping in mind parallel execution?
More here: https://goo.gl/977JEP

3. Parallel execution environment setup
Depends on the tooling you are using and the AUT. Few options I know of with open source:

– Selenium Grid (will run on single machine)
– Jenkins + VM – with Selenium running on multiple VMs / environments
– Jenkins + Docker – Running on a docker server where multiple containers running different tests in parallel. Can manage the parallel execution through Jenkins
– Jenkins + SaaS – services like BrowserStack, SauceLabs etc.
– Zalenium – Docker based Selenium grid. More here: https://goo.gl/pqXoQW

#QsDaily #Docker #Jenkins #TestAutomation

 

Can continuous testing help?

By | July 5th, 2018|daily post|

Continuous testing just a buzz word or can it really help you?

To quote my all-time favorite book ‘The teams to take a product from idea to the market will win’

Here’s how I explain it:

Bottom line of a company – Sales

The best way to predict sales and improve them? – Go and sell the product

Unless you don’t have anything to give to your customers, no way to get feedback from them

For decades we tried to ‘model’ markets, trends, buyer personas and so on

Sometimes actual results were around our estimate, mostly way off mark

Then we thought, let’s forget to try and ‘simulate’ the environment, let’s just put it out there instead

The reason for simulations and models was it took too much time to build a deliverable product

With all concepts around Agile, CI, CT, CD, DevOps, we are trying to move from once in a 6 month delivery to multiple times a ‘Day’

Still thinking if continuous testing can help?

A video I did on the subject:

#QsDaily #ContinuousTesting #DevOps #CI #CD

Lightning post on AI and ML

By | July 4th, 2018|daily post|

What are they and how are they related

AI –

is ‘Artificial’ since the machine will not be ‘aware’ and is only working from a set of mathematical formulas under a specific context

Intelligence – is relevant, a computer can beat the best chess player ever, but has no concept of winning or losing. Can we call VA’s like Siri ‘really’ intelligent?

So why call it intelligent? The same reason we started calling phones ‘smart’!

ML –

To develop ‘intelligence’, machines are ‘trained’ to answer specific questions in a given context

There are different ways in which machine learning is done, one is ‘pattern recognition’

To the problem we want to solve, a large sample answer set is ‘programmed’ in the machine

So when an actual problem is given, the machine matches the ‘patterns’ it sees with the patterns it was trained on..

#QsDaily #ArtificialIntelligence #MachineLearning #AI #ML