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), 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 rhymthic 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, 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 faster movement and hence the ability to do longer distances. What is geometry in software testing ? The arrangement of the elements that aids in understand 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, where each flow seen is a composition of business requirements, each one 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 enabled questions to pop up to understand and uncover potential bugs, while here the arrangement improves the ‘filtration capability’ enabling the lurking bugs to pop out.
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! So 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 you. See the various shapes in nature and how they provide the strength and beauty. The honeycomb, the dome of cathedral, the 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’.
HBT (Hypothesis Based Testing) is inspired by the power of geometry to setup good baseline, do robust test design equipping you with power to test smartly.
If you are keen on knowing more, there is a 2-day HBT masterclass on HBT happening at Bangalore (June 30-July 1, 2016). Click here for details.