By Lorinda Brandon, Technical Evangelist at Smartbear Software
Recently, I had the privilege to present to a group of students who are engaged in a curriculum designed to teach them software testing skills and hopefully get them their first jobs as testers. In one of the question-and-answer sessions, a student asked if there were other skills they should be learning in order to better prepare them for a job in a particular sector. My co-presenter gave an excellent answer about how important it was to build a foundation of skills that provide them with an understanding of how to approach software testing and would be transferable to any industry.
When the session was over and I was headed up the Merritt Parkway on my way back to Massachusetts, I found myself pondering that question. I describe myself as a software professional who has been engaged in some part of software development for the better part of 30 years now. Thirty years in one industry is a long time and it sounds like a bit of a yawn, right? But the reality is that while I have been involved in some part of building software for that long, I have had the opportunity to learn about a lot of different industries in the process. I’ve worked on software for small business finance, for technical writers, for web developers, for freelance writers and publishers, for data storage… so, while I’ve built expertise in building, I’ve also had the opportunity to gain some knowledge of a whole variety of industries.
So how does that happen?
My colleague is exactly right when he talks about transferable skills. If you are a good software tester or developer, you can build any kind of software at any company. But first, you need to build a strong foundation of skills that allow you to succeed anywhere. Since we were addressing a group of software testing students, he was referring to specific software testing skills, but included in those skills are what I like to call the Three C’s:
This is perhaps the essence of testing. A skilled tester can dissect a product or a requirement through analysis and reflection. A really skilled tester is able to see the larger context of a feature while at the same time seeing the pieces that comprise it. This is essential when it comes to building a deep-enough understanding of the product to focus on the right testing and assign appropriate priorities to defects. Without true critical thinking, it would be difficult to design tests that exercise the code in a way that makes sense to the goals of the project. And a good critical thinker can also identify their own gaps in understanding, knowing when and how to ask for clarification. You can gain more respect from a colleague by admitting what you don’t know than bluffing your way through it.
Oh, yeah… a good portion of software testing is tedious data setup and repetition. Maybe that’s why we get all philosophical about it…so we can feel like the boredom is part of the lightening of our soul and contributing to the greater good. But there’s a secret pleasure that lucky testers get to experience in addition to that – and it’s probably why so many of us get addicted to testing software. Before you start getting your data set up and running through your proscribed tests, it takes creativity to figure out how to test a feature, what is the right data to use, how many different paths do you need to traverse to cover all the scenarios. And, if you’re really lucky, there’s enough time in the project and support from management for the true creative testing – what I like to call ‘off-roading,’ where you let the software take you where it will.
Testers have to walk a fine line here. They need to be diplomats, technicians, and politicians all in one. It’s one of the hardest skills to master (for anyone) – how to convey an issue clearly and concisely, in a constructive tone but one that also denotes the severity of the problem. It becomes even more complicated when you realize how different the audiences are for these communications – on the one hand, an issue needs to be well-defined technically for a developer to address it and, at the same time, described clearly enough for a non-technical stakeholder to make an appropriate decision about its impact to the project. And at times, testers need to tap into their powers of persuasion when they are advocating for a particular action. It’s a problem many testers wrestle with and, if done wrong, it can create lasting problems with the project team.
Of course, none of this is isolated to software testing or even software itself. I have held different roles in different industries and I have seen those skills make or break colleagues. And yet, these are the skills only a few training programs address even though they can be far more important than any technical knowledge you’ve picked up.
About Lorinda Brandon, Technical Evangelist Strategy at SmartBear
For more than 25 years, Lorinda Brandon has worked in various management roles in the high-tech industry, including customer service, quality assurance and engineering. She is currently Technical Evangelist at SmartBear Software, a leading supplier of software quality tools. She has built and led numerous successful technical teams at various companies, including RR Donnelley, EMC, Kayak Software, Exit41 and Intuit, among others. She specializes in rejuvenating product management, quality assurance and engineering teams by re-organizing and expanding staff and refining processes used within organizations. She has a bachelor’s degree in art history from Arizona State University. Follow her on Twitter @lindybrandon.