Daily Posts

1601, 2019

Automation and reusability

By | January 16th, 2019|

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

1301, 2019

Using AUT’s JavaScript methods

By | January 13th, 2019|

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.

2912, 2018

Us Vs Them, or being empathetic

By | December 29th, 2018|

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

2812, 2018

Why time is the most important asset

By | December 28th, 2018|

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

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

Money:
– 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.

Freedom:
– 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!

Time:
– 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

2712, 2018

Most precious asset

By | December 27th, 2018|

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

Options:

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?

P.S.
This is improtant for testers to learn,

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

#QsDaily #goals #testing

2712, 2018

Cannot automate testing, so no need to automate?

By | December 27th, 2018|

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

 

 

2112, 2018

Automated = losing jobs?

By | December 21st, 2018|

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.

1612, 2018

Mocking JSON test data

By | December 16th, 2018|

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

 

512, 2018

How loosely to couple your framework?

By | December 5th, 2018|

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

112, 2018

Change management

By | December 1st, 2018|

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.

2511, 2018

Automation framework for Multiple products

By | November 25th, 2018|

For multiple products (with different teams) creating one huge solution,

How would you structure the automation framework? Here are few options:

Solution 1 – Separate frameworks for all products

Solution 2 – One framework for all products across the same automation type

Solution 3 – Common framework and libraries for each automation type, with separate POM and tests layer for each product

There can be other ways, these are the three I have seen been used over the years.

Which one do you think would suit best for this structure:

– Different teams working on separate products eventually all joining to become one huge solution
– All these products have separate time-lines, but are also interdependent on one another
– End to End tests will obviously be needed to verify across all the product lines as one holistic solution

(I don’t want to share my choice upfront to avoid any bias)

2111, 2018

Collaborating across multiple automation projects

By | November 21st, 2018|

For multiple products (with different teams) creating one huge solution,

How would you structure the automation framework? Here are few options:

Solution 1 – Separate frameworks for all products

Solution 2 – One framework for all products across the same automation type

Solution 3 – Common framework and libraries for each automation type, with separate POM and tests layer for each product

There can be other ways, these are the three I have seen been used over the years.

Which one do you think would suit best where:
– Different teams working on separate products eventually all joining to become one huge solution
– All these products have separate timelines, but are also interdependent on one another
– End to End tests will obviously be needed to verify across all the product lines as one holistic solution
(I don’t want to share my choice upfront to avoid any bias)

#QsDaily #automation #frameworks

1911, 2018

Leadership, vision and conviction

By | November 19th, 2018|

The importance of leadership and believe in their vision

A lesson I was reminded of in the orientation today

In a presentation we went through the history of Dubai and achievements of the Emirates Airline

Born and raised in the Emirates, listening about it’s history from it’s elders, I’ve always had tremendous respect for the founders and specially Sheikh Muhammad.

The best line I felt was when he founded Emirates Airline while handing over initial capital for setting up and said something along the lines:

‘You should be self-sufficient, don’t ever ask for more again’, and to my knowledge the airline never had to..

The man had such a great vision, determination and conviction.

I’ve heard people say, “When money talks, bull***t walks”,

There are many other countries with massive wealth but are not successful.

It’s not just finances, having a vision and conviction to get it done is far more valuable.

As a reminder for myself and the reader, have GRAND visions, 10x your goals,

And then believe in them as they were the past, “UNSHAKABLE CONVICTION”.

IMHO this is the greatest recipe to success.

#QsDaily #success #leadership #goals

1811, 2018

Don’t talk to my developers

By | November 18th, 2018|

Everyone feels it is necessary for testers and developers to collaborate,

But then why don’t we see them do it most of the time?

Off course there is no one answer to this.

Over the years I’ve seen many reasons, and will keep discovering new ones.

The one that I hate the most – middle management is not ready to loose control.

Sometimes management at both sides wants to ‘horde’ power and deliberately create these barriers.

“Your tester should not talk to my developer, there taking too much time”

“Developers should do their unit test and not ask testers to do that for them”

The root cause at most of these, afraid to loose control and give freedom to the team to act for themselves.

I can tell you from experience, loosing control is sometimes scary, but you need to have faith and build mutual trust.

With these silos the product suffers, and the workplace becomes an unpleasant place for no reason.

So build trust and have faith. You tried to hire great people, now give them the liberty and freedom to shine.

#QsDaily #testers #teammanagement

1511, 2018

Java Vs JavaScript

By | November 15th, 2018|

Java Vs JavaScript for automation?

Here are a few factors I would consider:

– Community support: much more for Java

– Ease of coding: JavaScript code will be short and easier. However Java would be more capable to scale for very complex and large frameworks.

– Ease of learning: JavaScript. It’s a procedural language, Java would require learning OOP concepts.

– Learning content availibility: Java, since it’s the most popular language for automation

– Integrations: Java, most automation related open source libraries would interface with Java code

– Interfacing with AUT front end: (this means accessing front end AUT methods, running JQuery / JavaScript commands directly). JavaScript would win here naturally. However Java wouldn’t be that difficult either.

– Long term perspective: learning Java will create more career opportunities because of its wide use

At the end I must add, depending on how comfortable you are with programming, it’s a good idea to start with a simpler language like JavaScript and python, then move your way up.

You’ll never (or should never) get stuck with any one language. So pick the one that suits your current situation.

911, 2018

Deciding on an automation tool

By | November 9th, 2018|

Automation tool selection can be a big problem,

Here are a few fundamentals I try to stick to:

1. Goals of the project
– Be crystal clear on what you want to accomplish with the project
– While most automation projects might have similar end goals, not all would have the same priority

2. AUT
– The most important factor to dictate this decision, understand the AUT (Application under test) and figure out what you should value the most in your automation framework.

3. Integration
– Your automation framework might not (or should not) comprise of any one tool,
– Make sure it integrates well across the SDLC especially any CI tool (even if you have no plans for CI)

4. Support
– Automation tools have to put with a LOT of change,
– Make sure the community surrounding the tool / library is very active and on top of their game,

A few more points and further elaboration on the ones discussed here in linked article

#QsDaily #automation #automationtool #automationframeworkdesign http://quality-spectrum.com/automation-tool-selection-dilemma/

711, 2018

When can you hand over automation

By | November 7th, 2018|

“How long before you typically ‘hand over’ automation”,

While THE question might be valid in certain circumstance, it completely misses the spirit.

Automation can NEVER be ‘handed over’ and be done with it (unfortunately),

Simply because as your application evolves, so should your testing, and so should your automation,

Wishing for the day when automation will become ‘automatic’ is an absoltely wrong goal to have.

Linking an article further elaborating on the subject.

#QsDaily #automation #testing #roi

 

Does Automation Save Money?

611, 2018

Plan what to test before automating

By | November 6th, 2018|

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

511, 2018

Employers and employees finding the right fit

By | November 5th, 2018|

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

411, 2018

API status codes

By | November 4th, 2018|

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.

2810, 2018

Success is uncomfortable

By | October 28th, 2018|

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

2510, 2018

Network equals net worth

By | October 25th, 2018|

“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.

2010, 2018

Before I used Jenkins

By | October 20th, 2018|

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

1910, 2018

Are all automation frameworks complex?

By | October 19th, 2018|

“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

1710, 2018

Non-verbal communication

By | October 17th, 2018|

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

Load More Posts