‘Testing as an activity’ – interestingly, this is one of the most talked about topics at the moment. It seems to be appearing everywhere, from Twitter feeds to blogs, and even over a pint at meetups. So, it got me thinking: are traditional ways of thinking about software testing, and more importantly implementing testing, shifting? Are frameworks such as Scrum and Kanban, surfacing problems early on, challenging what traditional software development may have failed to achieve? On the flip side, are we finding new innovative ways in which testing is performed? As a QA Manager, I am always curious to find out what the community is talking about, thinking carefully how I can engage with current issues, and feeding in those thoughts and ideas to my team and workplace as a whole.
On June 26 2014, this exact topic will lead our discussion at The Next Generation Testing Conference. This year, speakers and ‘topic gurus’ like myself will be addressing the challenges that many organisations are currently facing, reflecting a significant growth of interest in testing as an activity and the implementation of Agile frameworks. Until then, I thought I would share my views on the subject matter with some food for thought, and I look forward to continuing the discussion at The Next Generation Testing Conference.
Ok, so let’s start with a simple question: is testing just an activity? What would you say if we stripped the words ‘software testing’ to it’s bare minimum and just looked at ‘testing’? When we do that, ‘testing’ does just seem to be an activity we perform, and by Google’s definition (in a nutshell) it’s about taking measures to check reliability, quality and the performance of something.
Now, thinking about it specifically in terms of software, we rely heavily on testing. Why? Because we’re checking to make sure what we have built actually works as intended, especially before putting it into widespread use. Seems pretty straight forward, but is it really? Ten years ago we would say yes, that’s exactly what it means, but as the world is changing and were heading into a more ‘programmable world’, is it enough to just check and pass a test?
What if we looked at testing as a state of mind? If you were to close your eyes and allow yourself to travel through a journey of behavioural and interactive prediction, how would that roadmap look? I believe that one of the fundamental traits of being a good tester is trusting and allowing yourself to change your mindset completely and frequently. It’s not about thinking like a user, an editor or even a developer. Instead, a good tester breaks down the silos and thinks like a developer who’s acting like a tester, who’s also trying to be an editor, using the system in a way your wouldn’t even anticipate. Keeping a high level of confidence that your product works, let alone predicting how another would use that product, is far from easy. This is particularly true in complex, evolving technology spaces like mobile apps or upcoming technologies such as Google Glass. You need to think about movements, capability, traits – almost to a point where you’re trying to predict mobility. And we all know that predicting some form of movement is possible, but predicting every movement is unrealistic.
Looking back, throughout my career, I probably wouldn’t have imagined testing being anything else other than just a process of ‘checking’. But it’s interesting how the industry can get your mind thinking in unimaginable ways about something you thought you had already figured out . Three three key people have changed my thinking process about testing. Liz Keogh always talks about allowing yourself to deliberately discover examples and scenarios you can’t find, and Dan North talks about how ‘behaviour’ is a more useful word than ‘test’. Meanwhile, James Bach enters the philosophical by stating that testing is an infinite process: comparing the invisible to the ambiguous, in order to avoid the unthinkable happening to the anonymous.
So with these thoughts in mind, here’s my theory: testing is the fusion of various activities where one allows oneself to discover creatively, think inventively, and implement collaboratively in many different states of mind. What’s your theory?