daily post

Foundation of relationships

By | September 28th, 2018|daily post|

The foundation of relationships

Building trust..

In some industries measuring success is very easy

The ‘work done’ is quantifiable, which makes managing the job easier

In other cases, like the software industry, most of the work we (are supposed to) do is intellectual

Quantifying the ‘work done’ in such cases is quite bewildering and confusing

While the end success will be measured in dollars and cents, tying every activity to those sales is sometimes impossible

While as a community we are trying to find great measures to quantify ‘work done’, trust will remain the most valuable currency

By the way, these measures too eventually generate trust, which is what the economic system is built on

A brand can charge many times more for the same product just because of trust

And many of us would gladly pay the extra price

Learn how to build ‘genuine’ trust, this would ensure long lasting success

Automation framework and cars analogy

By | September 27th, 2018|daily post|

An automation framework analogy

Thanks to Ryan Bedino for reminding a slide a prepared 4 years ago

If we give the analogy of a car, Selenium WebDriver would be the engine

An engine alone does not do the job,

You need a lot of other parts for the car to run

And a lot more to make the ride smoother and more comfortable

And that’s what an automation framework will do for you,

Add a lot of essential features on top of the core functionality (browser automation)

Image illustrating the concept

Law of reciprocity

By | September 26th, 2018|daily post|

The law of reciprocity and office relationships

Here’s what I have learned:

Sometimes office relationships can be tricky to deal with

But mostly they become as tricky ‘as you make them’

At one point in my career I had to make a decision,

Should I keep my own interest the first and only priority? Or keep giving my only priority, and my interests second?

That was the turning point, and thank God I decided to make sharing my highest priority

Since then I have received many folds in return from places I never expected

And that’s my philosophy on office relationships too,

Spread the good without expectation of return, great things will eventually come your way

The only important thing is to keep your faith, it’s easier said than done,

But that’s price you have to pay.

Browser automation vs Automation in test

By | September 25th, 2018|daily post|

Browser automation vs Automation in test (Test Automation)

What is the difference?

In many cases folks assume both are the same, wherein the real problem lies.

Automation of tests can be done in MANY different ways,

One of them being ‘browser automation’.

On those same lines, Selenium is a ‘browser automation’ tool,

I might not classify the WebDriver library as an ‘automation tool’.

Once the difference is understood, then the inquisitive mind will ask for:

What else do I need beside a ‘browser automation’ tool even if I’m doing just UI automation..

And that’s where the fun begins.. ‘Automation Framework design’,

Structure of a program

By | September 24th, 2018|daily post|

Explaining structure of a program

Here’s an analogy I like to use in training:

Software programs are grouped in different layers to give them structure

It also makes them easy to maintain, port to other platforms and many other benefits

An analogy I give is about a library of books and a software program ‘library’

The analogy might not fit 100%, but is a good start

The screenshot is a picture from a training session I am in the process of preparing for Web Automation

But before I talk about automation, I discuss the fundamentals of programming

This section specifically comes under ‘Introduction to Java’

More fun stuff coming up..

Strongly typed vs loosely types

By | September 23rd, 2018|daily post|

Strongly typed vs loosely typed languages

What is it and what’s the difference

Some programming languages have more checks at the compile time (while building the code), and have checks on method calling, data types, return types and so on

In short you cannot ‘loosely’ use variable types and change them on the go

Examples of such languages would be Java and C#, each variable must be declared with a specific datatype

The opposite off course is loosely typed, where there are no such checks on the compile time

A major reason for that is some languages don’t have to be ‘compiled’ to build code

Such an example would be JavaScript, these languages are called ‘interpreted’ languages

In JavaScript’s example, it’s code is mostly used in browsers, and that’s one of the reasons why some websites look different

They can ‘interpret’ the same JavaScript code differently.

So, mostly ‘compile time’ languages (e.g. Java, C#..) would be ‘Strongly typed’, and ‘interpreted’ languages (e.g. JavaScript) would be ‘loosely’ typed

Never give up

By | September 22nd, 2018|daily post|

Never give up

You are defeated only when you give up

I always give an example of a little kid and a wrestler

If the kid keeps coming back to fight, no matter what happens, or how long it takes, eventually he will win

Persistence and being tenacious are fine qualities

A quality of ‘Winners’

In the words of the Great Muhammad Ali:

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

As he said, ‘float like a butterfly and sting like a bee’

What is programming

By | September 21st, 2018|daily post|

While learning automation, I feel it’s important to learn:

What is programming?

While there are many metaphors people give, most cannot fit 100%

I am too confused (was confused) how to define programming

A LOT of people just run away from learning to code

One reason is, IMHO, we don’t necessarily teach it in the best way

And a good place to start it, what is programming?

The best answer I found is:

It’s like writing, you take an idea in your head and you write it down

Similarly, in programming you think of an algorithm and write it down

If we broaden this definition, I even call playing Real Time Strategy games ‘programming’

Sure, you’re not writing code, but you are thinking of an ‘algorithm’ to beat another person or ‘algorithm’ (Computer as a player)

A link to a GREAT video I watched on the subject (added in the links)

Automation batch issues

By | September 20th, 2018|daily post|

Automation batch issues

Passes individually but fails in the batch..

This would be an all too common for anyone who has worked in automation

While the reasons for this can be ‘infinite’, here are some common ones I’ve observed on top of my head:

– Dependent test data. When running individually no other script can change the data, in a batch run that is a possibility

– Tool / browser reset. If the previous script failed, the browser was still in error state and the next script starts executing, resulting in failure

– Delay. Browser response time can change when running in a batch, must have dynamic delays before interacting with EVERY object

– Application down. While this might seem a remote possibility, in some cases this does happen in very sbtle ways.

Any other ‘very common’ factor you have noticed?

Standardized platforms for evolution

By | September 16th, 2018|daily post|

A key ingredient in my observation for evolution in technology:

A standard platform, here’s why

When a new technology emerges, it takes more than a few people to evolve it

A very large group of people collectively working with it helps in pushing boundaries

Take the PC for example, having a standardized OS on PC (Windows) was one of the main causes that fueled advancement in software development

On the other and, embedded devices (IoT) has been out there around since the PC, but we are far behind there

Embedded platforms were very fragmented and challenging to develop, therefore layers of abstraction were not built there as rapidly

Only in recent years we have seen things like Raspberry pi and so on

The same would go for automation, having a standard platform and building layers of abstraction on top of it would make the difference

The same way standardized JavaScript execution on all browsers has fueled front end platforms like Angular, Sencha and so on.

 

Thoughts?

 

#QsDaily #platforms #automation