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 Posts - Quality Spectrum

Daily Posts

Daily Posts2018-05-15T15:19:35+05:00
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

 

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.

 

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

1610, 2018

Object life cycle – Waits

By |October 16th, 2018|

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

1510, 2018

What is your management style

By |October 15th, 2018|

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

1010, 2018

Importance of encapsulation

By |October 10th, 2018|

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

810, 2018

Selenium Locator tips

By |October 8th, 2018|

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.

510, 2018

What Automation trainings miss?

By |October 5th, 2018|

What most automation trainings are missing?

Explaining the fundamentals, and that’s where I like to start..

Starting with installing the tool is not a great way

With automation the ‘why’ is far more important than the how

Automation done well is time intensive and requires by-in from many departments

Going in for the wrong reason is the main cause of failure

I’ll be talking about this concept a couple of times in different ways over the course of the training

(Image from the previous week sessions)

210, 2018

Spreading knowledge

By |October 2nd, 2018|

“The smallest good deed is better than the grandest intention.” John Burroughs

Don’t shy away from spreading knowledge (more in the video – Testing Heroes)

I know how hard it can be to create content in your spare time

After a 9 – 5, spending time creating content without expectation of return is not easy

But the return is always many times more

I felt this very deeply when doing the ‘yearly’ tour of independence hall (PA) last month.

So to those who have something to share, please step up, every good deed counts..

#QsDaily #testing #automation

110, 2018

Web automation training – Pseudo code

By |October 1st, 2018|

“Web automation training” and pseudo code – The missing piece of the puzzle

From an automation training session I was conducting last week..

In most automation trainings the course content starts directly from installing the software

While setting up selenium surely is a basic step, but a very important prior step is usually missing

I call this the algorithm design process, where the trainees learn about how to think about algorithms

The human mind works very differently than a machine,

A to-be programmer should train to think in terms of programming blocks

This is where pseudo code comes in.

Image below showing me discussing a game ‘help the robo’ to think in terms of logic building and writing pseudo code

3009, 2018

Testing Heroes

By |September 30th, 2018|

Drivers of the testing community ?

Are (IMHO) the testing heroes..

In my recent visit to Philadelphia I realized something new, importance of heroes

Every idea, change needs a change agent, a leader or group of leaders

Without those leaders the movement / change dies

Our testing community is no different, our thought leaders (heroes) have been one of the main cause of evolution in the field

Linked video in the comments has a few of my thoughts around why they are important..

2909, 2018

Exploring TestProject

By |September 29th, 2018|

I recently explored TestProject

And here’s my experience:

Every tool focuses to solve certain problems in automation

While the scope can be wider, most tools have a specific few problems they are really focusing on

With TestProject, a platform for developing automation scripts, one problem is setup time

They have tried to make the setup for automation very easy and quick

While there are other features of the tool as well, this is one which might benefit the most for beginner users.

More in the article linked in comments.

2809, 2018

Foundation of relationships

By |September 28th, 2018|

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

2709, 2018

Automation framework and cars analogy

By |September 27th, 2018|

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

2609, 2018

Law of reciprocity

By |September 26th, 2018|

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.

2509, 2018

Browser automation vs Automation in test

By |September 25th, 2018|

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’,

2409, 2018

Structure of a program

By |September 24th, 2018|

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

Load More Posts
Go to Top