Deprecated: Function create_function() is deprecated in /home/qualit96/public_html/wp-content/plugins/revslider/includes/framework/functions-wordpress.class.php on line 258
daily post Archives - Page 19 of 39 - Quality Spectrum

daily post

API status codes

By |2018-11-04T21:08:53+05:00November 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.

Success is uncomfortable

By |2018-10-28T20:44:29+05:00October 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 |2018-10-28T20:44:19+05:00October 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 |2018-10-21T21:52:26+05:00October 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 |2018-10-21T21:54:26+05:00October 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 |2018-10-17T20:20:53+05:00October 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 |2018-10-16T19:51:51+05:00October 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

What is your management style

By |2018-10-15T19:01:12+05:00October 15th, 2018|daily post|

I was asked a very interesting question today, ‘what is your management style?’

While I could go the leadership route, there is something else also equally valuable..

Each person is knowingly (or unknowingly) working towards some goal.

It’s like every object on earth is absorbing and exerting energy in some shape or form.

So when we say a team is not effective, it’s not the ‘absence’ of energy,

It’s more about energies being dispersed in different directions instead of one direction!

Just like the difference between an ‘unmagnetized’ object and a ‘magentized’ object (or a magnet)

When not magnetized, the atoms are not exerting force in the same direction giving a net effect of zero.

When the object is ‘magnetized’, as per ‘domain theory’ all atoms exert force in one specific direction, creating the desired net effect of pulling objects.

Bottom line, ‘align the energies’ of the team members to get the desired results.

The goals should be clear and they should have stake in achieving the goals.

I know it’s easier said than done, but IMHO ultimately will pay off many times more.

#QsDaily #leadership #teammanagement

Importance of encapsulation

By |2018-10-10T19:15:04+05:00October 10th, 2018|daily post|

The importance of encapsulation / wrapper layer

A question I asked the participants in last week’s training:

Usually encapsulation is understood as a way to hide the implementation details.

While that is true, there are a lot of other great benefits as well.

I learned of these working with Embedded systems and seeing ‘wrapper’ layers implemented.

Just like encapsulation, add your own ‘wrapper’ on top of the library(ies) you want to use.

In trainings and designing frameworks, one of the fundamentals I teach / use is to NEVER use ANY library directly

EVERYTHING used by the POM layer should come from the framework’s own helper library

Which in turn would call any external library / API you want to use.

This way if anything changes / needs to be changed in the way outside libraries are used, the change has to be done in only one method

Also adds portability to your framework, helps a long way in maintainability and scalability of the framework.

#QsDaily #automation #training

Selenium Locator tips

By |2018-10-10T19:14:12+05:00October 8th, 2018|daily post|

Discussed a lot of topics including ‘Advanced Selenium’ locators today

And here are a few tips I gave the class:

Tip 1:

– I always try to find a parent for the area of the page I want to use,
– Then within that area find the exact object I am looking for.
– The parent reduces a lot the possibility of capturing similar elements

Tip 2:

– Test your locators in chrome developer tools first before using them in your code
– Makes debugging a lot easier knowing you are using the right locators.

Image from the class today.

Go to Top