Holistic Testing for Beginners

Christmas is a time of year for sharing and it is therefore a great time for me to share with you what I consider to be the most important attribute that has contributed to my ability to effectively and efficiently test and break software.

About 15 years ago I read a couple of books by Douglas Adams (the author of the Hitchhikers Guide series) that struck a particular chord with me. These books centred on the concept of a “holistic detective agency” run by a character called Dirk Gently. His methods for solving his cases were somewhat unconventional, but logically sound, if you take the view that everything and everyone in the universe is connected. I certainly subscribe to this belief and contend that it is this connectedness that impacts our individual actions and thoughts. For example, I believe that there is no “original” thought. Instead, I believe that there is a collective consciousness, that is growing along with the rest of the universe, that occasionally surfaces through ordinary people, like you and I. The key thing, though, is to be receptive to the energy of these thoughts, so that they can be shared and used for the greater good. This is why ego is such a waste of energy. Ego is fed by negativity and selfishness and is minimised by collective thought and shared activity. This means that if we share our ideas we will grow far more effectively and encounter fewer setbacks.

It is from this belief that I have built my whole ethos of testing software and solving problems. How do I do this? By searching for (universal) patterns and using them to seek the truth or falseness of any given situation. For example, when I first meet someone I build a profile of the person based upon their responses to my stimuli. My stimuli may take the form of words, actions, gestures or insinuations. I may say or do something just for effect – to see how the other person reacts or responds. I may also imply something to see whether the person has their own strength of character or is more of a follower or others’ ideas. This is not manipulation (as someone once suggested to me), but is my way of learning about someone as quickly as possible – after all, there are millions of people inhabiting our world and I don’t want to “waste time” on people with whom I do not share a connectedness. I also do exactly the same when I “meet” software for the first time. I probe it to understand it’s characteristics and makeup. I “ask” it questions to determine how it will respond and I look for strengths and weaknesses in the responses in order to create a pattern of what I am communicating with.

We are all subject to the mathematical rules that govern our universe and therefore everything we create must also be governed by these same mathematical rules. Using this hypothesis, I build models and patterns upon which I base my relationship with someone or something. For example, I can quite often foresee an outcome before it happens, by tuning in to the energy that surrounds me. Similarly, if I attend an event where there are many people with strong spiritual energies, I can feel the collective weight of this in the room, sometimes causing me to feel nauseous or “under attack”.

If this all sounds slightly weird, then you will probably struggle to understand how I solve problems; however, if it sounds plausible/interesting, then stick with me. I “know” when someone isn’t telling the truth, because I am watching and feeling their actions as well as listening to their words. I “know” when a situation or environment feels unsafe, because I scan a room when I walk into it and I can “feel” any danger. Once I have performed my initial scan, my next action is dependent upon those initial scan results. If I’m comfortable then I relax and seek out “interesting” energies; however, if I feel uncomfortable, I examine the environment more closely until I find the root cause of my discomfort and then decide whether to stay or go.

This whole activity does not take very long (usually just a few seconds), as I have built up a multitude of patterns over the years that cut corners and predict the next steps. This may result in my missing out on certain experiences (that others may enjoy), but it is my way of treading through our universe in a manner that is comfortable for me.

So how does all this help me be a better Tester? As I said before, our entire universe is connected and in a similar vein all of our software is also connected. And it is this connectedness that ultimately creates weaknesses. We all know about looking at the edges or boundaries (BVA) and at the decision points (Equivalence Partitioning), but do we know where the more subtle weakness are? Not unless we have a relevant model or pattern for the landscape we are currently inhabiting. For example, website failures follow a specific pattern, mobile app failures follow their own patterns, while categories of failures adhere to their own patterns too.

Neither modelling nor pattern recognition are new to most of us, it’s just whether or not we realise their value and understand their possible applications. It’s like anything else, unless we have context for a specific piece of information it is unlikely to interest us and we then tend to “gloss over” it. I have models for all types of testing and problem analysis. They are mostly industry/sector or application-type centric, but some are completely generic in order that I may derive something more specific from any new encounter.

This is only a “primer” regarding my holistic tendencies and I shall return to this topic many times over my future Blogs, in order that as many people as possible can entertain the concept of connectedness and shared consciousness.

In the meantime, I hope you all have a fantastic Christmas and a joyous New Year. 2012 has been life-changing for me, as I left my role as Test Practice Lead with Capgemini in Melbourne (in June) and decided that I no longer wanted to be a paid-up member of the “rat-race”. I have therefore spent more of my time with my family. I have also spent more time playing sport and regaining the fitness levels I had when I was much younger – “life balance” has been restored!! My hope is that 2013 will be less fractious and that the people closest to me will be happier and healthier. It goes without saying that these hopes are for all of you too.

Dateline: Saturday December 22, 2012; New South Wales Central Coast

Advertisements

2 thoughts on “Holistic Testing for Beginners

  1. Since my only recollections of Dirk are that if you are lost you should follow someone else as they will know where they are going, I obviously need to reread the books.

    So, in the holistic approach, I don’t look for bugs because if I take an unplanned, reactive path through the application, the bugs will find themselves?

    • Hi Doug,
      Apologies for the delay, but I posted a reply via my iPad last week that didn’t seem to stick.
      The concept of bugs “finding themselves” themselves is not out of the question. A bug is just another weakness and we can code weakness-hunters into our software, which in reality means that the bugs will “find themselves”. A commonly used weakness-hunter is the insertion of a piece of code to disprove something, often known as “fault-seeding”. We can also insert internal “watch-dogs” that warn us if anything suspicious happens during execution.

We're here to help

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s