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