I recently tweeted about my desire to (help) push the boundaries of testing. I feel my personal knowledge and understanding of testing has stagnated, and I struggle to engage with the content in the testing community (though that’s mostly a reflection on me and not it).
In thinking about how one might go about pushing the boundaries of understanding testing, I thought it might be useful to understand the current state of the art. Where is the testing envelope right now? What shape is it? What are its components? Are there bits that have been neglected?
The testing envelope is a fluffy cloud. Its shape is amorphous, its edges poorly defined, like the dotted lines on maps between countries disputing the border.
Progress might be accelerated by understanding where we are, so we can pose better questions that help us understand where we might go.
But how to document or depict the envelope? My first thought was to utilise taxonomy, which is the practice and science of categorization or classification. The taxonomy I’m most aware of is that one used to categorize living things. There are many others, including some attempts already in the field of computing. Howeer, some difficulties already present themselves.
The taxonomy for living things, while very large and containing many, many branches, is simple in that each category – kingdom, phylum, and so on – have one parent. The evolutionary nature of life means that a species may, in time, result in two or more successor species, but a species cannot have two or more ancestor species.
Depicting such a taxonomy is relatively straightforward. You start with a small number of categories, and you just keep categorising differences until you run out.
The things produced by humans, by comparison, aren’t so neat and simple. While we certainly split activities into categories and specialisations, we also regularly combine activities and endeavours to create all new things.
Human society has reached its current state (for better or worse) by assimilating ideas and concepts from every thread of human endeavour. The resulting “fabric” is so complex and intertwined, depicting it is probably impossible, or at least wildly impractical. A decipherable model would probably be so simplistic as to be practically useless.
So, is a taxonomy of testing possible? If it was, would it be understandable? If it was, would it be valuable? These are all (good) questions.
An underlying principle of the endeavour to “push the testing envelope” should be to ask questions with an open mind, without knowing the answer, without judgement of the responses.
Will we know if the responses are pushing the envelope? We won’t know until we try. Will a taxonomy of testing have any utility whatsoever? You tell me.