Skip to main content

Time to start thinking, stupid......

Sometimes it feels like the world doesn't want to think any more. We make decisions for the sake of expediency, gaining satisfaction that there is a tick in the box, sometimes knowing that wrong tick has been placed in the wrong box. The person still asking 'Why' or saying 'Is there another way' in the corner at the end of a long meeting is seen as an inconvenience, blocking progress at best and plain annoying in the worst case.

As a tester, I often find myself at the heart of this deficit of thinking. Teams built with the wrong competencies for the job at hand, products sabotaged by blind fire decision making, compromises made to fit restraints which are beyond aspirational. So what can I, a lowly tester, do about this? I can change my behaviour, mind-set and make sure testing has a voice, that’s what I can do.

First, acknowledge and embrace your own stupidity. Ever felt like asking a stupid question but then stopped yourself and walked out of the room with no idea what happened? Stop doing that. Your confusion is most likely shared and you've just missed an opportunity to expose it. By not asking, you are even stupider when you leave the room than when you entered.

Second, stop being so accepting. Ever with your project team while decisions are made which made you think 'Really? We are going to do that?' Stayed quiet did you? Thought so. Stop doing that. Do not always retreat into your 'I'm only here as an information giver' persona. Testing is valuable, give it the respect it deserves and every so often apply a little thought to what testing gives to the functionality.

Third, talk to your tests.  Serious. Ask them why they need to exist. Ask them if they intend to be around for a while or will expire as soon as they have been executed. Ask them if they prove one thing, lots of things, or nothing at all. Ask who else cares about them. Look at them as group and ask if they are a balanced set of tests, or are they skewed in favour of a particular aspect of the functionality.

Fourth, remember the vision. It’s fairly common practice for projects/products to define a vision. This may put usability or aesthetics to the forefront, perhaps performance and scalability. It’s also pretty common to lose sight of this vision. So if usability is key then ask how does this functionality meet the vision and how does my testing approach show this goal has been met. To put it more succinctly, make sure you are testing the right product before testing it right.

Now that you are a stupid, annoying product visionary who speaks to test artifacts, you are ready to start being part of the solution rather than the problem. Like most habits, little and often is key. Learn short, sharp techniques for teasing out the real issue. 5 Why's for beginners, 6 Thinking Hats, the mighty 'Huh? Really? So?', why not have some fun. Its 5 minutes of your life, spent with your brain engaged. What’s the worst that could happen?

There are many testers out there, but not very many thinking testers. I've seen the phrase 'zombie tester' used recently, so unless you want to be a shambling, undead mess of a tester, it's time to get your thinking cap on. Eating the brains of others will not make you smarter.


Popular posts from this blog

Wheel of Testing Part 2 - Content

Thank you Reddit, while attempting to find pictures of the earths core, you surpass yourself.
Turns out Steve Buscemi is the centre of the world.

Anyway. Lets start with something I hold to be true. My testing career is mine to shape, it has many influences but only one driver. No one will do it for me. Organisations that offer a career (or even a vocation) are offering something that is not theirs to give. Too much of their own needs get in the way, plus morphing into a badass question-asker, assumption-challenger, claim-demolisher and illusion-breaker is a bit terrifying for most organisations. Therefore, I hope the wheel is a tool for possibilities not definitive answers, otherwise it would just be another tool trying to provide a path which is yours to define.

In part one, I discussed why I had thought about the wheel of testing in terms of my own motivations for creating it, plus applying the reasoning of a career in testing to it. As in, coming up with a sensible reflection of real…

Getting started with testability

At TestBash Netherlands, I said that, in my experience, a lot of testers don't really get testability. I would feel bad if I didn't follow that up with a starting point for expanding your mindset and explicitly thinking about testability day to day, and making your testing lives better! 

In large scale, high transaction systems testability really is critical, as compared to the vastness and variability of the world, testing done within organisations, before deployment, is limited by comparison. We need ways to see and learn from the systems we test where it matters, in Production.
Being able to observe, control and understand is central to testing effectively, and there are loads of resources and experience reports out there to help. I was/am inspired by James Bach, Seth Eliot, Matt Skelton, Sally Goble, Martin Fowler and a little bit of PerfBytes/Logchat, so lets see if it works for you! 

Overall Model:

Heuristics of Software Testability by James Bach…

The Team Test for Testability

You know what I see quite a lot. Really long-winded test maturity models. 

You know what I love to see? Really fast, meaningful ways to build a picture of your teams current state and provoke a conversation about improvement. The excellent test improvement card game by Huib Schoots and Joep Schuurkes is a great example. I also really like 'The Joel Test' by Joel Spolsky, a number of questions you can answer yes or no to to gain insight into their effectiveness as a software development team.

I thought something like this for testability might an interesting experiment, so here goes:

If you ask the team to change their codebase do they react positively?Does each member of the team have access to the system source control?Does the team know which parts of the codebase are subject to the most change?Does the team collaborate regularly with teams that maintain their dependencies?Does the team have regular contact with the users of the system?Can you set your system into a given state…