Great testing takes all sorts

Explore Assurity 16 October 2012 Adam Howard

When I tell someone I work in testing, I generally get an interested, quizzical response inviting elaboration. I elaborate, the word “software” inevitably being mentioned in the explanation, to which they generally pull a face. “Oh no” they’re thinking, “I’m talking to a geek!”.

Anyone who assumes that those who work in the IT industry have limited conversational skills are wrong. They’ve also fallen foul of the assumption that testing is purely technical.

Of course, testing – when done properly – has technical elements. Whether you’re automating test scripts, getting hands-on beneath the GUI or static testing the code itself, your average well-rounded tester will be more than willing to embrace technical practices to rigorously test a system.

But I often come across the assumption from those who don’t understand testing that these technical elements are the only weapons in a tester’s arsenal. As someone who entered testing from a completely non-technical background (having joined Assurity’s Graduate Training Programme fresh from an English Literature degree), I couldn’t disagree more.

While in many ways I felt utterly unprepared for the transition from university to the ‘real world’, I’ve found that many of the skills I developed while studying for my Arts degree have proved extremely useful. My ability to analyse a requirements document, for example, or to eke out the various testing scenarios can be compared to reading a novel and analysing the various standpoints from which it may be read and interpreted. An ability to write clearly and concisely, just as you would while writing an academic essay, is also a valuable skill when crafting easily readable test scripts.

It is, in many ways, these softer skills which we employ around the technical artistry of testing that can enable and enhance our work.

For instance, unless you are able to collaborate effectively with other members of a project team – whether a business analyst, developer, subject matter expert etc – your ability to develop and execute effective tests will be null and void. It is only by co-operating with these people who know the requirements and who are actually building the system that we can gain a clear insight into what exactly we’re testing for and how we might best manage it.

So an ability to relate to other people, to see things from their point of view and understand the unique way they express themselves, are all key to being able to test effectively.

The simple truth is that even the best requirements – and certainly the average requirements – may leave room for interpretation. A tester’s best asset is often their ability to identify and perhaps expose those areas where a developer’s interpretation of a requirement may differ from those intended.

Soft skills like people management, listening and teamwork are crucial to this process. So is  confidence in yourself, a willingness to question other’s assumptions or to expose possible oversights. The ability to conduct such activities while maintaining a congenial collegiate environment can be a real talent... and one that’s far removed from any kind of technical expertise.

I believe that Assurity recognises, acknowledges and encourages these softer skills, appreciating the real value they have in the world of testing. The Assurity Graduate Training Programme is proof of this, a programme where non-technical graduates like myself are welcomed, not just because of their ability to learn new skills, but because of the in-built skills and qualities that they already possess.

We should also remember that these softer skills are just as important as technical skills as software development moves forward. Assurity is committed to challenging the status quo and working towards an improved method of developing software for our clients based around Lean thinking and techniques.

Much of the focus of these techniques is about encouraging the adoption of cross-functional teams. The importance of automation and an emphasis on developing the minimum viable product in each increment or sprint – which may often mean working without a conventional front-end interface – arguably requires the tester to evolve into a more technical beast.

These skills are undoubtedly crucial to the evolution of software development and a tester who wants to tackle such projects needs to commit to developing their technical proficiencies. Lean thinking, however, also demands the evolution of the softer skills in a testing toolbox.

For a team to become a small, cross-functional unit capable of effective group estimation or of collaboration that results in concise and testable user stories, it needs trust, support and co-operation. Only then will they be able to commit to a shared vision and develop understanding with, and trust of, each other.

Such an achievement depends on the soft skills of the team members; to communicate effectively, to listen to and understand the viewpoints of others, to analyse and break down requirements and to engage in effective teamwork. The functioning of the team will make or break the success of the sprint, the delivery of a quality product and, therefore, the value to the business. These skills are crucial then to the success of Lean software development.

As well as developing new approaches and strategies for software development, Assurity will continue to encourage us to develop as people. While Deming suggests that “94% of all failure is a result of the system… not people”, that’s no reason to rest on our laurels. There is always room to develop who we are and how we work.

So the next time somebody asks you what you do, tell them that you’re more than ‘just’ a software tester. Tell them that we’re challenging the status quo, pushing the boundaries of software development and, in doing so, testing ourselves as individuals too.