EverythingSoftware TestingUncategorized

Testing – An activity, not a role

If you’re a tester and the title of this post made your heart beat a little faster, then bear with me for a paragraph or two before you scroll down to the comments section to rant.

I’ve been doing this testing thing for a while now. I’ve worked the full spectrum from heavily conservative, highly process driven waterfall style development to Agile with all the bells and whistles and a bunch of hybrids in between. I’ve seen more definitions of what testing is from non-testers than I can count. I’ve seen almost as many definitions from people that call themselves testers.

I have this mental image of the role of testing as a pasty emo teenager railing to instatwitsnapbookplus about how nobody understands their pain. ‘My issues are so complex that it would take you too long to comprehend them, let alone understand them and the answer is you all need to change, and that’s clearly not going to happen, so leave me to wallow in my delicious, delicious pain. Oh and leave Britney alone.’

Blog post after blog post about how testers are devalued by anyone who isn’t a tester. I’ve written more than one myself. I go to testing conferences around the world and yeah it’s fun to catch up with my learned testing peers, but I’d be kidding myself if I thought I was making a difference to how we’re seen by non-testers. I might get through to the occasional meatbot that rote testing is dumb but more and more I’m of the opinion that if we really want to be taken seriously as software development professionals, then we need to seriously look at how we position ourselves in relation to our peers.

The first time I heard ‘testing is an activity, not a role’ I think my reaction was ‘what the fuck do you know, man. I’m a tester. It’s what I do and I do it well.’ Some time later (many months later), I was talking to someone about religion and how people tie belief to their identity, and the strongest reactions you’ll see are when you threaten beliefs that fundamentally make up someone’s identity.

A: ‘I’m an X’

B: ‘X is deeply flawed’

A: ‘I will fucking cut you’

Which made me think about my reaction to the ‘testing is an activity’ statement. At the time I first heard it, it sounded like a statement that trivialised something that I feel is part of my identity. Of course my reaction was a strong one. I am not so smart. My time with the team at eBay has given me serious cause to reassess my initial reaction.

I initially equated ‘testing is an activity’ to ‘anyone can do testing’. The easiest way to troll a tester is to tell them that anyone can do their job. Some people genuinely seem to believe that anyone can do testing. I vehemently disagree. That said, there are some things that testers do that are simple. They also happen to be the things that are the most visible, hence the confusion. Is X different to Y? Yes. Should it be? No. Ok, bug. That’s as complex as testing is to more than one software development professional I have interacted with.

Testers do some of that stuff and you know, it’s stuff anyone can do. If you have a clear oracle to determine the correctness of something and you observe a deviation from it, then you call it out. It’s not rocket surgery. Why the hell as software testers would we want to accept this activity be ours alone, let alone demand it? Anything that simple should be handled by anyone that sees it. It should be the responsibility of every member of the team to be on the lookout for that stuff. Bake it into how you develop software. Make it a basic expectation.

Oh, just ‘make it happen’. Easy for you to say. You landed in a team that ‘just gets it’. Ok. Sure. It’s not as easy as that, but that’s not really what I’m getting at. I think many of us as testers have felt like second class software development citizens for so long and fought for recognition so hard that allowing testing to be thought of as an activity as opposed to a role seems like a massive step backward. I also think it has quite a bit to do with ‘quality’ being a bit of a dirty word amongst learned software testers. ‘I don’t do Quality Assurance, I’m not an engineer, I’m not the quality police’ – we spend so much time trying to get misguided software testers to understand this that I think we’ve gotten tunnel vision. We’re not going to stop the zombie invasion. Rather than encourage testers to step back from ‘quality’, we need to encourage our non-tester peers to embrace it. Quality as a shared responsibility. Shared ownership of what we ship.

What we do as software testing specialists should not be to ‘test all the things’, but to enable every single person involved in our project to bring their skills to bear to improve product quality. Sometimes that will mean we get our hands dirty and use the product, find tricky, unexpected things. Sure. We’re good at that. It also means things like facilitating reviews of the proposed solution, identifying useful, sensible quality criteria and working out where they should be tested. It means training your colleagues to do better testing and to recognise when they need specialist help and learning more about what your colleagues are good at and what you can do to help them do their job better.

The demand for the skill set we have is not going away any time soon. We’ll do more good by letting go of the much maligned chunk of responsibility we’ve carved out for ourselves within professional software development and embracing testing as an activity than we will by demanding recognition that the role of testing is a special snowflake and deserving of special attention.

6 thoughts on “Testing – An activity, not a role

  1. I am confused about what you think roles are. Do you think anything is a role?

    You have some good points here. Obviously testing is an activity. Obviously other people besides testers can do testing. But you don’t address the motivation behind the creation and maintenance of the testing role, or any role.

    Testing is a role in a lot of places. That is just a fact. I have been a tester. I teach testers. I see people with that role. You are not saying that no one has that role. You are saying that it is heuristic.

    Giving someone a role is a heuristic for motivating and organizing responsible behavior. One of things it does encourage the development of supportive culture and skills. You currently work in a company that is largely shunning that heuristic. I don’t see that as a good thing. The support for developing the skills and infrastructure and responsibilities of testing, at least on the American side of eBay, has deteriorated to the point where bugs are being routinely ignored.

    I think testing as a role is a very useful heuristic.

  2. Thank you for a great post with lots of food for thought for me…

    I loved the line – Quality as a shared repsonsibility. Shared ownership of what we ship.

    It tied in with something I was reading yesterday on repsonsibility… “when people are responsible, they’ll do things because they feel those things are worth doing. Responsibility is intrinsic and cannot be assigned. Create a context in which no one can say “it’s not my responsibility” and let responsibility emerge”

    I know that sounds quite idealistic and theoretical, but I think the intention is the right one to set:)

  3. Testing can be an activity within a role so I don’t see that the two are in conflict with each-other. The activity of testing is not exclusive to that role but a role that is predominately made up of that one activity could have test, testing or quality in the title. If the question is why define roles, well again this is the introspective IT mentality.

    An analogy might be if a building fell down of which I was an occupant, and I lived to ask if I might speak to the building inspector, architect, or the person that defined building regulation. I’m might not be responsible for my actions if the policy was… isn’t that your activity, or we don’t label people here.

    There is an expression in the UK, “Jack of all trades, master of none”. Any how, If someone is not called a tester someone would define their role as something else i.e. team member so by saying you don’t have a role, your end up having a role anyone but more of an ambiguous one.

  4. The bit that resonates with me is how much time I (and teams I am working in) have spent
    doing things that people may not think are part of the role of a ‘tester’. I felt we needed to do these things (e.g. manage releases,
    co-ordinate design reviews, co-ordinate ‘fixing’ sessions, co-ordinate environments, etc) to aid us with the testing part but I am not sure that
    the value of doing these things was always understood or acknowledged… especially when it came to a decision about offshoring testing to a ‘cheaper’ alternative.

    I am wondering if we saw these things as ‘activities’ – would it make them more visible? Would it make it easier to see that testing is more than the simple checking that many think it is?
    Maybe giving more visibility to the kinds of activities we really get involved in and can add value by doing, changes things… or did I just suck at getting a better common understanding of the ‘role’?

Leave a Reply

Your email address will not be published. Required fields are marked *