SmartQA Community

QA skills for digital world

( In this SmartBits, Sriramadesikan Santhanam outlines “QA skills for digital world“.  The video is at the end of this blog)

Skills and competencies are most important. One needs to understand that it is not just the business or it’s not just the technology, it is both. One needs to acquire multiple skills. One needs to understand what the customer is going to use this product for, how is it getting implemented, the expectations of the various end users’, and their perspectives. 

Acquire those skills and competency to understand these. That’s what I advise – try to understand what customers are looking for, what their customers are seeking, and then finally what the end users are looking, for then only one will be able to test from their shoes.

We as QA people need to understand the customer’s program objectives also, that is most important. Only then will be able to align to their expectations and understand why they are making these changes and appreciate the impact/uplift they’re looking out from modern technologies.

The change in skill requirements are: In addition to knowing about technology, to be able test to meet customer program objectives. Many times in the product world, people wouldn’t have seen how people are really using it, are we aligned to them? Testers now have to have good tech/dev skills, and also have business analysis skills too.

#64

SmartQA Digest

Many years ago, we went on a holiday to Masai Mara, a lovely 1510 square km game reserve in Kenya. Here the animals are free in their natural habitat whilst humans are inside open top jeeps. Seeing the Big-5 (Lion, Leopard, Rhino, Elephant & Wildebeest) and others in close quarters was just wonderful. Observing their behaviour and mannerisms at close quarters was not only enjoyable, but educational. 
 
A quick summary of lessons in leadership that I learnt from them – “Assemble varied skills to build a great team. Let good techniques and methodical action unleash the power. Watch progress and steer continuously. Be confident. Make decisions. Enable each individual to unleash their full potential. And enjoy the journey.”
 
The full text is in this week’s beEnriched article “What Masai Mara taught me about leadership“. Oh, enjoy the lovely pictures of these amazing animals in their home.
 
TRUST. SUPPORT.PUSH
Unlock other’s potential.
LEAD
This week’s poster.
 
You cannot validate if you do not how it is constructed and what it is doing. A deep understanding of architecture in deployment is probably more necessary for today’s validation teams.“ says Jawahar Sabapathy in this week’s crisp 90-second smartbits video Should I know the architecture to test?.

beEnriched

What Masai Mara taught me about leadership

Want to be a successful leader? Let animals be your guide. Assemble varied skills to build a great team. Let good techniques and methodical action unleash the power. Watch progress and steer continuously. Be confident. Make decisions. Enable each individual to unleash their full potential. Finally enjoy the journey.

Read More »

expandMind

Black box thinking

Learning from failures .The inside story of how success really happens and how we cannot grow unless we learn from our mistakes.

Read More »

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

Simplifying rich UI testing

T Ashok @ Ash_Thiru on Twitter

Summary

Why does a complex UI faze a tester? Is it possibly the inability to see beyond the UI, the inability to question beyond the obvious? Too many test cases, the overwhelming feeling that scientific modelling & design cannot be practised due to time constraints are some of the issues. This article outlines “How to decompose, question & analyse” to design smartly using a complex UI entity as an example.


During a recent consulting engagement, I noticed that a tester came up with a complicated decision table to represent the behavior model. On closer examination I noticed that he had arrived at behavioural conditions by examining the complex UI visually, rather than digging deeper to understand the behaviour. This is not the first time I have seen this, I have observed the challenge with behaviour modelling many times in numerous companies.

So “why does a complex UI faze a tester?” It is possibly the inability to see beyond the UI, the inability to question beyond the obvious. The result – too many test cases, and the overwhelming feeling that scientific modelling & design cannot be practised due to time constraints. Well this is the fun part of testing ‘the intellectual one’, where one decomposes an entity through a process of rational analysis and utter curiosity by thinking better to test smarter.

A rich UI typically has large number of data fields, some dependent on others or system settings, possibly in multiple tabbed dialogs, and doing the same thing in different screens i.e. a feature available in multiple places. This seems to pose difficulty in (1) “where-to-start” to model the behaviour (2) mixing test cases related to fields, UI and behaviour, business flow & environment dependencies.

Let us look a problem to see how we simplify testing of a rich UI using an airline application, done in four screens, each of one which seems complex.
(From http://awery.net/pages/software.html#page-screenshots)

1.Setting up a flight schedule for a flight

2. Setting the route information -“start location details”

3. Setting up the route information – “permissions”

3. Setting up the route information – “cargo details”

4. Setting up the route information – “setting up crew”

What do we see in the rich UI?

Let us analyse…
1. Firstly we can see data fields – independent and dependant one.

2. Secondly we see feature/function (some of them a mini feature) and a business flow that is really a combination of many features.

So, this single rich UI screen consists of a set of features, and enables a complex flow to be done. How do we test this?

Let us look at good design principles “COHESION & COUPLING “. Good design of software is high cohesion and loose coupling. Grouping similar actions & data (cohesion) keeping minimal dependencies between them (coupling).

How is this useful in TEST DESIGN for rich UI?

Let us dig in…

So, what have we done to tackle challenges of complex UI?

Well, we have:
1. DECOUPLED complex UI into COHESIVE entities : FIELD, FEATURE, FLOW & UI
2. Applied behavior driven approach for feature test design (decision table)
3. Combined outputs (variations) optimally to test the FLOW (variations table)
4. Used checklist as needed to leverage prior design


In a rich UI, one tends to see HOW-to-do, whereas if it was UI-less, one seems to focus on “WHAT-is-to-be-done.
The latter is important for a tester to figure out ‘WHAT-ifs’. 

T Ashok


Advice for career growth

(In this SmartBits, Sudhir Patnaik outlines “Advice for career growth“.  The video is at the end of this blog)

Have a learning mindset. Technology is evolving very rapidly and the general purpose software engineering skill is on its way to becoming extinct. It is best to develop specialized skills or niche skills either in the area of test automation or in the non-functional areas or what we call it as “-ilities” testing- availability, security, scalability performance, vulnerability.  It is good to build specialized skills as opposed to staying on general purpose software engineering skill. In addition one can always become a domain expert. But the domain expertise also is transitioning to other people who are better at performing in those kinds of areas, which are needed for the software.

It is very essential to stay or at least learn technology. Those days are gone where one needs to know only what the product does. More or less, it was QA which was known as a workflow validation expert till today. As more and more logic is getting embedded into the middleware, one needs more code expertise to be able to test the software effectively. In the early 2000, we were probably talking about black & white box testing. The industry has transformed itself from black to white box today. But those who were able to catch up on white-box testing in the early 2000s must be reaping the benefits in today’s world because that is much needed today.

Role of human intellect in QA

(In this SmartBits, Sudhir Patnaik outlines “Role of human intellect in QA“.  The video is at the end of this blog)

The way artificial intelligence and machine learning is coming into play, there will be a time where a developer doesn’t need to write code. It would be more like telling the chatbot, the business logic and it spits out the code. In fact, to some extent it is happening today, where the template code is ready and one needs to just plug in the business code.

Even in the testing world someday automation is going to be so intelligent where one just point at the software to the URL and it captures everything. There is no need for human intervention and it self-corrects whenever the things change in the website or URL.
Sometimes when we refer to test automation, we unfortunately focus only on UI automation, whereas a big piece of the world actually is platform automation because companies are transforming themselves to be known as platform organizations in the world. There is more technology on the platform side.

The human interface on the UI side will minimize itself and this is where the transformation of the shift is focusing more on the backend side. The front end is going to be driven through intelligent systems mostly. Our intervention as quality engineers on front-end side will get minimized over a period of time.

It is not easy for any computer system or whatever system one builds to understand the piece of code and magically write a unit test code. One can understand the code, can write the computer systems, can write positive and negative test cases, but that may be about 50% of the coverage; the remaining 50% of the coverage on the code still comes from humans. That is where the intellect is still needed. No chatbots can take over.

Expectations of Senior Management

(In this SmartBits, Sudhir Patnaik outlines “Expectations of Senior Management“.  The video is at the end of this blog)

Leadership is key. But more than organization and people leadership owning a substantial part of work is also needed. One can have an oversight on some part of the organization, but need to get hands dirty by owning areas that have no managers. This keeps one grounded and also helps develop empathy for their organization as to what they go through.
Here are the expectations :
(1) The ability to understand what the team is going through.
(2) Show up in incidents, show up in incident reviews, show up in customer escalations
(3) Keep learning newer technologies and catch up with what’s going on in the industry
(4) Have the curiosity to look at everything from a metrics driven approach.

Extreme ownership mindset

(In this SmartBits, Sudhir Patnaik outlines “ Extreme ownership mindset “.  The video is at the end of this blog)

There is a tremendous shift towards a customer backed approach. Everything that we do is keeping our customers in mind and an extreme mindset of product ownership. The one scrum team mindset is driving phenomenal change in how we deliver products. This is where extreme ownership mindset comes into picture where a scrum team owns outcome for customer.
The days are gone, when one has to develop, somebody else has to test and somebody else has to deploy. It has to be packaged in such a way that as a member of the scrum team every single member of the scrum team owns every single responsibility.  If I am a developer or a test engineer, I own development, I own testing, I own deployment, I own support. That’s the team’s extreme ownership. That’s a disruptor.

Transforming test teams

(In this SmartBits, Sudhir Patnaik outlines “ Transforming test teams “.  The video is at the end of this blog)

As a leader running platform engineering organization, industry changes made us reimagine how we test software platforms. We decided that in the context of extreme ownership mindset by Scrum team it is best that we transform quality engineering organization and merge them with Scrum teams.

This required us to look at the entire quality engineering organization, find out people well-versed in functional, performance testing and  security testing,  and automation. In a step-by-step process, we did a shift left of quality engineering organization, re-skilling many engineers towards learning the development technologies. We moved one function at a time into the respective Scrum team, and gave them about a year to transform themselves into developers. We provided every training that was needed.At the same time, we also trained developers to embrace functional testing concepts. If one is the owner of a service, one owns its unit testing, code review and its functional testing too.

From Quality Engineering perspective this meant that half of quality engineering organization ended up merging with the Scrum team and transforming themselves into developers in a period of one year. The remaining half of the team still stay as a central organization, but largely responsible for end-to-end and non-functional testing.

They are not executors of end-to-end and non-functional testing scripts, they have transformed themselves to become more creators of tools, frameworks and scripts that are needed to get these done. Then who executes those – “Well it is the Scrum team”!

#62

SmartQA Digest

Good testing is a great combination of intellect, techniques, process and heuristics. What does it take to do brilliant testing ? It requires one to be immersed in the act, be focussed yet unbounded, be keenly observant but non-judgemental, with outcomes that are beautiful, the activity so joyful that time stops. A state of flow. What does it take to get there? Read about this in this week’s beEnriched article “Be in a Flow. Test Brilliantly“.
 
Girish Elchuri says it is important to understand the big picture, put yourself in every role, inject probes to test better and concludes by stating that attitude is key to probing  the design, in this week’s smartbits video Adopting DFT thinking.
 
Check out this week’s postern in the SmartQA home page – Good testing happens when you combine left with right. Brilliant testing happens when you are in state of flow.”

beEnriched

expandMind

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

#61

SmartQA Digest

It has been at least a month that most of us have been working from home. Covid19 has moved a full circle around the world constantly mutating, affecting some places seriously and some much lesser. An error is what possibly caused the world to massively change in the last few months. Some of us are seeing the ill effects of this while nature given a breather has become pristine. Well, errors however painful they seem are necessary and useful. Hmmm, bugs are good!
 
It is interesting that error is what made humans possible in the first place. Without noise, evolution would stagnate, an endless series of perfect copies, incapable of change. But because DNA is susceptible to change – where mutations in the code itself or transcription mistakes during replication – natural selection has a constant source of new possibilities to test. Most of the time, these errors lead to disastrous outcomes, or have no effect whatsoever. But every now and then, a mutation opens up a new wing of adjacent possible. From an evolutionary perspective, it’s not enough to say “to err is human”. Error is what made humans possible in the first place” Steven Johnson says in his lovely book “Where good ideas come from-The seven patterns of innovation”. The chapter on “Errors” in this book is a fascinating read. This week’s expandMind article summarises key ideas from this outlining how erroneous hunch changed history, how contamination is useful, how being wrong forces you to explore, how paradigm shifts with anomalies and how error transforms into insight. Bet you will like this article “Errors are useful, innovate using them” interesting. 
 
Why do bugs happen in software? The beEnriched article this week outlines eight reasons for this and suggests being sensitive and aware to causes of errors is useful in doing SmartQA and delivering clean code. After all, doing SmartQA is not just finding issues, but sharpening one’s senses to be able to smell these and spot them from afar or near before they hit us. It is about elevating QA to be far more valuable to business success. Check out Sensitivity and awareness.
 
In this week’s smartbits, Zulfikar Deen says how needing a business mindset is key to working as a value adding partner to  IT group of an enterprise. Check out the 298-second video “Business mindset“.
 
Check out this week’s poster “It is not about finding bugs. It is being participative in the whole process of development” at SmartQA home page.

beEnriched

Why do bugs happen in software? This article outlines eight reasons for this and suggests being sensitive and aware to causes of errors is useful in doing SmartQA and delivering clean code. After all, doing SmartQA is not just finding issues, but sharpening one’s senses to be able to smell these and spot them from afar or near before they hit us. It is about elevating QA to be far more valuable to business success.

expandMind

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||