Understanding the skills of a great tetser
The attributes of a C-R-A-C-K tester came to be as a response to a frequent question:
“What do I look for in hiring a superstar tester on my team?”
Often the context of this question had to do with people asking about what automation tools/skills are essential in hiring new testers. I was continually stymied by the question, but it helped me ponder what things really differentiate the superstar testers I’ve encountered in my career. What do they possess or demonstrate that seems to be missing from the staff tester that has become a commodity in the industry (replaceable by automation, outsourcing, or other forms of test executioners)? Surprise! The answers categorically are not related to their knowledge of automation tools!
The many answers I came up with led me here … to C-R-A-C-K. CRACK represents a subset of all the answers I came up with, and I chose them because I think they are the most broadly applicable and helpful of the bunch. Further, they are all similar in this way … they are not things I can teach in the classroom. As a trainer, I was first depressed by that realization. But deep down, I know that career testers are born as testers. They are not made out of trainings, books, certifications, or things like that. So here’s C-R-A-C-K in a nutshell:
C – curiosity
R – resourcefulness
A – adaptability
C – creativity
K – knightly (bravery)
Why are these my favorites, and why do I value them?
Let me explain further:
Testing is a function of inquiry. Every test we design or execute is an inquiry about the software or system under test (related to functionality, usability, performance, etc.). A curious person will simply generate more questions to ask the software. Further, a curious person will pursue things outside of a specified test or requirement, often uncovering why something is not working correctly or discover new and unexpected things to be evaluated.
Those who do not possess a curious nature will probably not pursue these paths, thus limiting each testing encounter’s usefulness. That’s all.
So many things we encounter in software are new to us. New features, new functionality, new user interface conventions, new technologies or implementations, new security vulnerabilities, new organizational or project context or goals, new or shifting customer/user base, and so on.
With so much being new, how will we keep up? Develop an ongoing training program that attempts to keep everyone in sync about all that might be relevant to today’s work? As an instructional designer, curriculum developer, and career trainer, I know that won’t work. Training can help where and when it can help, but testers will be faced with “new” every day.
Resourcefulness helps a tester be in charge of their own learning – in a real-time way. Resourceful testers recognize new, different, or something that they are now curious about as learning opportunities. For example, if a new version of a website-under-test uses flyout menus for the first time, how should that be tested? It’s just a menu, right? Well, a curious and resourceful person might go research (a.k.a. Google), investigate, and learn more about it so they can incorporate that knowledge into their testing and evaluation.
A resourceful and curious tester doesn’t get stuck … they pursue! As a result, these self-starters will continually be growing their knowledge base and skill set, and in turn, will be contributing that to their work and teams. That sounds like a winning combination!
An adaptable person is continually able to evaluate current conditions and make adjustments. Adjustments that increase testing’s effectiveness and/or efficiency will often be highly valued.
Here are a few examples of how to identify a lack of adaptability:
“We’ve always done it that way.”
“This is the way we do things here.”
“Test cases are required.”
“We never write test cases.”
“We don’t do exploratory testing here.”
“We can’t do that because it’s not part of our process.”
Inflexibility comes in the form of many superlatives. Always, never, must, can’t … and in even more subtle forms like should or shouldn’t.
The landscape of software and testing today requires us to pivot, sometimes immediately, along with changing requirements, development processes and tools, organizational initiatives, competitive concerns, and market demands. However, an adaptable person will not get stuck or knocked down by change or frustrated by constant change. Instead, a person possessing adaptability will not only anticipate change as a matter of course, but they will also develop a mode of working that will enable them to easily and quickly adapt.
In the ever-evolving and fast-changing world of software, adaptability is an essential quality for success and survival!
Why did creativity make it into my top 5 list of attributes? That’s simple. Creativity leads to out-of-the-box or out-of-the-ordinary ways of thinking and doing things. This leads to increased coverage in testing and the ability to find questionable behavior and bugs that no one else will encounter following scripts or specs. Think about it. Do customers/users follow your test scripts? Do they have intimate knowledge of the specs or rules of technology implementations? I tend to think users do what they do.
Have you ever thought of entering data in a screen from bottom to top, or right to left, instead of the expected order of interaction? Have you ever tried to double-click or right-click a button? Creative people find ways to scratch the surface of possibilities that will illuminate previously hidden quality risks. I believe that’s a value-add to any team!
I had some difficultly getting my cornerstone attribute of bravery into this acronym I wanted to build. Searching cascading lists of synonyms got me to the word knightly. Honestly, it’s a way better word! It encapsulates so many star tester attributes without making my acronym bigger! LOL
Knightly qualities can help a tester be a more valuable and impactful asset to their team and organization. Here are a few examples:
Bravery – Do it afraid! Have enough resilience to speak truth in intimidating situations. Truth comes in the form of bad news, devastating bugs, and the inability to meet deadlines. But the information must be shared, so be brave!
Ethical – Ethics in testing shows up in lots of ways. Confidentiality is an obvious one. But here’s a more subtle one – not spending testing cycles on what’s enticing to the self instead of what’s vital for the team and org.
Steadfast – We face so much adversity and stress in the job of testing. Through it all, it’s essential to maintain our inner strength and balance.
Loyal – Be a beacon of constant support. How can we help today?
Humility – Be careful of stating what someone should do or how something should be implemented. We, as testers, are not the decision-makers on projects. The business decides, and the customer or users will concur or not. Besides, a bossy or lofty attitude will curtail collaboration opportunities. Once those have dried up, our ability to influence things related to quality will diminish. A humble approach is often more effective.
My goal in putting together and sharing C-R-A-C-K was never to suggest these are the only things that would matter to any hiring manager. Instead, it was to point out that many valuable things that talented individuals could offer to a team are not necessarily the things found in CVs or resume bullets. Instead, I want to provoke people to look beyond the buzzwords and contemplate what someone can add to the team now and in the future.
Probably the most common question I get after someone hears the CRACK talk is, “how do I interview for these attributes?”
I think the first step is determining which attributes, these or others, are most valuable to you and your team. Then, once you’ve settled on them, rank them. During the interview, listen for evidence or indicators of these things. When you want to explore an attribute or see if it’s there, then ask the candidate to share an experience.
Here are a few potential questions you can use to surface attributes:
With new technologies and tools emerging in software and testing all the time, how do you keep up?
Can you give me an example of a time when you had to deliver an important but difficult message to a person or team? How did you prepare? How did you end up delivering the message?
Have you ever been in a meeting with something critical to say on your mind, but you ended up keeping quiet? If so, why?
Have you ever invented something? Tell me about it …
Do you often come up with new (possibly better) ways of doing things, or are you satisfied to do things the way you learned them?
Do you follow instructions well?
– or –
Do you question instructions (or procedures) you are given?
Follow on: Can you give me an example?
Can you share an example of a bug report that you would write? This could be an actual bug you have recently scribed, one you haven’t submitted yet, or one you found on the way to the interview. 🙂
If you had to tell a developer they made the same mistake they’ve made several times before, how would you do it?
About the Author
Dawn Haynes is the Principal Trainer and Quality Coach at PerfTestPlus, a US-based consultancy. As a highly regarded trainer of software testers, Dawn blends her 35 years of IT experience with a real-world view to provide testers of all levels with tools and techniques to help them generate new approaches to common and complex software testing problems.
Dawn holds a BSBA in MIS with a minor in programming, and endeavors to keep pace with changes to the industry through memberships, participation in peer conferences, and continuing education/professional development. Member: IEEE, ACM, ASQ, AST. Former Secretary and Director of the Association for Software Testing Founding member-International Institute of Software Testing. ISTQB CTFL, CTFL-AT, CTAL Full, ASTQB CMT
This post was originally published on Curating Testing Talent.