This is the sixth 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.
This article, the first one on the theme of STRUCTURE outlines how structure(or organisation) of elements plays a key to doing more with less. In the subsequent two articles on this theme, we examine in detail, the arrangement of product elements and test artefacts and how these aid in clear thinking to deliver high performance.
Geometry is a branch of mathematics concerned with questions on shape, size, relative position of figures, and properties of space. The shape or form is key to structural strength and architectural aesthetics in static structures. In dynamics, the shape plays a critical role to higher power transfer/output with lower energy expenditure.
Let me tell you a story on running to illustrate this. When you are into long distance running (Marathons/Ultra-marathons), the ‘running form’ matters a lot. What is ‘running form’? It is the erect lean-forward stance of the runner with clean forward/backward hand movement. How does this help? Well, the erect and lean-forward stance exploits gravity to propel you forward while the rhythmic hand movement enables the abdominal core to power you, reducing the effort on legs. How did it help me? My running performance improved significantly once I got into my running form.
So what does it take to get into the ‘form’? Understanding the science of form, techniques to get into it, and then enormous practice to make this a habit. The result — faster and longer runs, lesser injury and quicker recovery. A significant improvement just by getting into ‘running form’.
I am on a story telling spree, so let me tell you another one.
As an avid endurance cyclist I was keen to improve my average speed on long distance rides. Over the years I have worked on my stamina, food, strength, mindfulness to increase the distances I could do. Now I was keen to improve my average speed. It was but natural to shift my bike from my relaxed hybrid to a race geometry bike, the one with drop bar handles and sleek frame. Having never ridden a road bike, my first ride proved to be marvellous, a 4–5kmph improvement in my average speed. Wow! Nothing has changed in me, the difference was in the frame geometry of the bike. And that is when I realised the power of geometry once again, in cycling. The frame geometry shifted my stance on the bike, enabling me to transfer more power to the pedals while expending the same energy, resulting in higher average speed. Well, the first couple of long rides were interesting; the aggressive geometry resulting in back aches due to a taut back! Once the muscles memorised this stance, it became a habit and the rides turned out to be zippier. Once again it was about knowledge of techniques and then practice to make it a habit.
These experiences of being more effective (more power) yet be efficient (less energy expenditure and therefore longer distance) in two sports set me thinking on the power of geometry. As a passionate tester, it was but natural to think on application of this in the context of software testing.
Geometry in testing
Let us move to testing now. In both the instances the shape(form) made a big difference to the outcomes. The outcome was energy efficiency resulting in the ability to do longer distances at higher speed.
What is geometry in software testing ? The arrangement of the elements that aids in understanding the static system under test (SUT) and the arrangement of test cases to evaluate the dynamic behaviour.
What does arrangement of elements of SUT mean? View the SUT as a set of flows consumed by different end users, with each flow as a composition of business requirements, each business requitrement delivered by one/more features with each feature delivered by a set of structural components. How does this ‘arrangement(shape)’ help? This ‘geometry’ of the SUT enables clean problem decomposition to clearly understand expectations of end users and also ‘how it is bolted together’. This enables intelligent questioning to understand deeply of what we know and what we do not know, the latter capable of becoming defects in the future.
Now let us look at the shape/arrangement of test cases. The arrangement of test cases into groups that target specific types of defects (for a given entity) ordering them in a hierarchical manner over time (levels). Visualise this a multi-layer filter with each layer catching a set of specific type of defects with each layer having variant meshes to catch different types of issues. How could this shape/arrangement of test case help? Well by decomposing the test design activity to making it simpler, sharper and more comprehensive.
The arrangement of SUT enables questions to pop up to understand and uncover potential bugs, while the arrangement test cases improves the ‘filtration capability’ enabling the lurking bugs to pop out. The next article will dwell on these in greater detail.
So what does one need to implement this ‘geometry’ in testing? As with running/cycling, we need to understand the ‘science behind’ and then understand the techniques, which by practice will become a habit.
Geometry in nature — Beauty and Power
Nature uses geometry beautifully. Shapes contribute to strength, result in high utility and ultimately satisfy the should via aesthetics/beauty. All this done efficiently! It is not just about brute force use of intelligence and techniques but about shaping the problem well to understand deeply and evaluate comprehensively.
Look around. See the various shapes in nature and how they provide strength and make them beautiful too — the honeycomb, cathedral dome, roller coaster, the double helix of DNA. Shape the problem of understanding question and evaluation to deliver higher yield. Question deeply, understand better and evaluate comprehensively.
Exploit ‘The power of geometry’ in testing.
A good running form, a great cycling geometry become essential to delivering higher performance with no increase in power output in running and cycling respectively. Applying this to the context of QA, it is not just the content of test artefacts like scenarios/cases, plan that matters, it is how they are structured/organised that is key to accomplishing more with the same or less.