The 4Ws to structuring a problem well

The 4Ws to structuring a problem well

Overview

This is the eighth article in the series of twelve articles “XII Perspectives to High Performance QA”, outlining interesting & counter intuitive perspectives to high performance QA aligned on four themes of Language, Thinking, Structure & Doing.

In this second article under the theme of ‘STRUCTURE’ , we examine how a great arrangement of various elements of system-under-test enables one to see the problem clearly in terms of facts and questions, and set the stage for efficient evaluation.

In any problem solving, stating the problem well or structuring the problem well is key to a great solution. What are we trying to do in the QA context? Well, all we are trying to do is to identify the various end users and their needs, the expectations they have on fulfilment of these needs and various environments that the system should run on.

So a good problem statement in the context of QA is about clearly outlining (1) WHO are the various end users (persona)? (2) WHAT entities do you want to test (3) WHAT do you test these entities FOR? and (4) WHERE do you test these on (environment)? So a simple way to structuring the QA problem is the“4Ws : WHO | WHAT | WHAT-FOR | WHERE”. Let us look at each of these in detail.

No alt text provided for this image

the WHO

Who are the consumers i.e. who are the various end users (persona) who will use the system. Note that an end user (or persona) may not always be a human, it could also be a machine. It is a great idea to start with the WHO first, so that we understand as ‘who’ is the intended audience.

No alt text provided for this image

the WHAT

This is really about the various entities that constitute the system. The various entities are of different granularities - they could be a “structural component aka “unit’ or a “technical feature” that is a basic behaviour of a system, or a “user requirement aka use case” that is linked to an user (persona) at the highest level business flow, which is really a sequence of various user operations.

No alt text provided for this image

the WHAT-FOR

Now that we know as to WHO and WHAT, it is necessary to know the expectations to satisfy i.e. WHAT-FOR. At a high level these are really attributes like Functionality, Performance, Security etc. What is key are the criteria attached to each of the attributes to ensure that they are testable. 

No alt text provided for this image

the WHERE

Finally the system may need to support/run-on different environments like OS, Browsers, Devices etc.. So the last part of the problem is identifying the various environments to be supported. It is indeed possible that in different environments, there could be variant end users, different attributes & criteria to be satisfied and possibly variant entity-under-test too.

No alt text provided for this image

In conclusion a good decomposition of the problem and a great structuring of the problem elements is key to high performance. This allows for superior clarity of the problem scoping and therefore a potentially super efficient solution.


All this takes is “4Ws : WHO | WHAT | WHAT-FOR | WHERE”.

——

Summary

High performance QA is about great decomposition of the problem before solving it. What this simply means is simplifying the problem of evaluation of a system as “Test what granularity of entities to meet what attributes & criteria to satisfy whom and on what environments” This is simplified as “4Ws : WHO | WHAT | WHAT-FOR | WHERE”.

--

CLICK HERE to read the previous article "The Power of Geometry" that outlines how structure(or organisation) of elements plays a key to doing more with less.

CLICK HERE to read the next article "10 ways to smartly organise test assets" that outlines how organisation of test assets (test scenarios and cases) plays a significant role in the effectiveness and efficiency of testing.


Ashok, Thanks a lot for putting the concepts in short stories .. i could not trace the 6th and 7th article in the series.. did i miss something.

Very clearly put, in brief, Ashok! The diagram is a nice reference to check completeness at a high level!

Very clearly put, in brief, Ashok! A useful diagram to check completeness!

To view or add a comment, sign in

More articles by Ashok Thiruvengadam

  • Before You Move On

    On the moment we almost never notice - and what we lose when we let it pass. Start with a single word.

  • Clarity as a practice, not a destination

    Testing truly is PROBING to understand, question, seeking clarity and in the process uncover issues, question& explore…

  • THE CUPBOARD THAT NEVER CLOSES

    Why we keep building more - and what it costs us when we never ask why Open a storage cupboard that hasn’t been touched…

    2 Comments
  • Probing the “Structure”

    Most assurance work is organised around behavior as what the system does, what it is and supposed to do and where the…

  • The unique challenge of skilling in testing

    Testing is an interesting discipline precisely because it resists articulation. It is not about a particular tool, a…

  • Sustaining excellence in the age of AI

    Something fundamental has changed in how software is built, and therefore in how it must be assured. We have always…

    4 Comments
  • Comfort, Control, and Cognition

    The hidden cost of not having to think Templates occupy a peculiar place in software assurance. They are among the…

  • Beneath the surface, system and self

    The skeleton in the system, the shadow in the tester The skeleton we rarely probe When we think of software structure…

    2 Comments
  • Focus yet Meander

    There is a particular kind of tiredness that most of us know but rarely name. Not the honest exhaustion of working…

  • When rapid quietly migrated

    Rethinking speed in the age of intelligent tools The catalyst: A conversation about speed A recent conversation with a…

Others also viewed

Explore content categories