“Something magical happens when testers and programmers start to collaborate.”1
I’ve submitted a conference talk last weekend.2 It has the heroic (*cough*) title of “Testing Demystified” and is now handed in for the Developer! Developer! Developer! East Anglia event taking place later this year (on Saturday, 16 September 2017), which is part of the Developer Days events series for the UK .NET Community. It’s make is very community driven, about sharing and learning in a friendly environment, which I find absolutely fantastic. The whole day is free to attend, on a weekend (so outside usual working hours), sessions submitted are voted on by the community, e.g. the prospective attendees, e.g. you, and it targets (and supports) the local speaker community. Oh, and it has “Developer” in the title. Thrice. So why have I, a Tester, submitted a talk for this, exactly?
Well, I’d very generally thought about submitting a talk to a conference at the beginning of this year (triggered by Ministry of Testing’s Continuous Call for Papers), but had initially decided against it. Looking back at the previous year I had done a couple talks at the Cambridge Exploratory Workshop on Testing, run as many workshops, one internally (assessing system architecture and associated risks Ash Winter style), one at the Ministry of Testing Cambridge group (with Neil Younger on Note Taking), of which I also continue to organise the monthly evening Sessions. All of which were fabulous, challenging, rewarding and inspiring experiences, albeit also …. somewhat exhausting. So looking ahead, not only was I ready to cut me some slack, but I was also interested to focus on a couple in consequence slightly abandoned areas a bit closer to my heart: writing and enhancing my technical skills.
That was the plan. But, as Woody Allen states: “If you want to make God laugh, tell him your plans.” So how did this happen, exactly? Quite naturally. I think. I hope. It seemed to make sense, anyways:
- My last CEWT talk had been to the workshop topic “Why do we Test, and What is Testing (Anyway)?” and it ended up being a ten minute rant on all the great things about testing, on why I love being a tester and what value testing can provide throughout (with great slides! A whole lot of images!)
- … which as a not so hidden agenda was meant as an encouragement to us testers to spread the positive aspects of our craft a bit more pro-actively.
- … which I then did, at least internally, repeating the talk at our internal Brown Bag Lunch session to a, as usual, very friendly crowd of Linguamatics staff.
- … but that’s not enough, is it? How can I do more?
And while all this “reflecting inwards” and “wondering at a more theoretical level about testing” was going on in the back of my mind, I also got an opportunity to approach this in a more hands-on, practical way:
- We’ve started to focus more on the cross-functionality side of the Scrum Team I’m part of.
- … especially considering testing and close collaboration between testers and programmers.
- … evoking all kinds of different reactions to the “helping out with testing” that people now got confronted with.
- … which made me think of what frameworks, safety nets, guidelines, useful techniques, good practices and general advice I could actually muster up to help my team (and me) in this (and to show that testing is, actually, a whole lot of fun).
- … to then formulate this in briefs, debriefs and pairing sessions on testing (while also: having fun).
- … which I believe brought benefit for both sides (and the team, the product, the company)
- … including good and useful feedback with some flavour of appreciation and new understanding being thrown in.
This isn’t always easy – everybody is different and has their good and bad days. Still, collaboration is one thing I love not only about my job, but about life in general. It just makes me happy to see people work together, supporting each other – in the end, we all are after a common goal, anyways. And to grow closer together, to understand what the challenges of your team mates actually are, what they are struggling with and what they are most interested in, helps a great deal. Especially if it’s a different world from your own – which is often true for testers and developers (or programmers, if you like), who can be quite far apart from each other given the sometimes, somewhat oppositional nature of their role and mindset. But that doesn’t have to separate us and it shouldn’t. There are just so many valuable things that we can learn from each other, including common testing techniques that can be helpful in any context and are worth sharing:
- Thinking of my Oracles and applying certain Heuristics is something I do quite regularly as part of testing.
- … I use a variety of them, in different contexts like risk assessment, generating test ideas or just doing puzzles.
- … but I found during some of the pairing sessions and the internal workshop that developers and other specialist roles in my team and company weren’t that natural at using them.
- … which really surprised me, because it’s become such an integral part of my work.
- … and given that I find Heuristics an incredibly useful tool when approaching testing I was starting to look out for more opportunities to advertise and encourage their use and make them better known.
So … why not make a nice conference talk out of all of this, huh? And open this up to a wider audience, share my experience, see if it’s useful for people? And this is the rough abstract of what you’ll get:
Do you know what the testers on your team do, exactly, and how they do it? Have you been asked to pick up some “testing tasks”, but aren’t quite sure what that entails? Have you ever wondered how you can better find issues in your own code before you hand it over?
In this practical talk we’ll have a look behind the scenes of testing to help you in this. I’ll outline the testing mindset and the value it brings to a team, the difference between testing and checking, and how exploratory testing and test automation complement each other.
I will share useful testing techniques that are flexible enough to take your specific context into account: using oracles and heuristics for test ideas, prioritising test areas by assessing risk, organizing and executing tests using exploratory charters. Combined with a habit of stepping back and looking at the bigger picture these methods can enable you to provide fast, valuable feedback to yourself and your team.
So, if you’re interested to hear more (or wanna see me sweat), you can vote for my talk now at DDD East Anglia – voting will be open until Saturday 29 July 2017. Actually, please, go there anyways and have a look, there are some amazing sessions submitted. And if you can, sign up for the event – I certainly will, if as speaker or not!
¹ Janet Gregory: When Programmers and Testers Collaborate. In: Kevlin Henney (Ed.): 97 Things Every Programmer Should Know (2010), p. 184.