Via Twitter Helena Jeret-Mäe asked this question: “What are your criteria for professionalism for testers in CDT community?”. Later via Email she updated her question to: “So the updated version of my question is what are the heuristics for recognizing professional testers in your opinion? I changed “criteria” to heuristics… it’s less categorical. And I’ll leave the term “professionalism” up to you as well – I don’t know exactly what you meant by it.”
In my talk “How to become a great tester” at ContextCopenhagen last January I talked about testers and their skills. I said that most testers don’t know what they’re doing and can’t explain effectively what value they add. I have seen many testers who use the same approach over and over again. If I ask them to name test techniques, they can only name a few. If I ask them to explain techniques to me or show how they work, I get no answers. I find that shocking and I cannot understand why testers who call themselves professionals know so little about their craft and do not study their craft.
That is why I make a distinction between professional testers (of which I think there are only few) and testers by profession. Of course I know and understand that there will always be people who have a 9 to 5 mentality, do not read books or blogs and only want to do courses when the boss pays for them. I accept that reality, but that doesn’t mean I want to work with them!
Let me now answer the questions asked, have done enough ranting for now…
Professionalism is what it means to be a professional and what is expected of them. Professional testing is complex and diverse and has several dimensions: knowledge, skills, experience, attitude, ethics and values. I wrote a blog post “What makes a good tester?” in 2011 on this topic and I have a broader view on this topic now although everything I wrote then still counts. In my earlier blog posts I didn’t mention values and ethics and I now think they are extremely important. James Bach writes about them in his blog post “Thoughts Toward The Ethics of Testing”. A great practical example of ethics and values is Rapid Testing. Look at the “the premises of Rapid Testing” and “the themes of Rapid Testing” both can be found in the slides of Rapid Software Testing.
It is hard to recognize professional testers. Every tester is unique and brings different characteristics to the table. Every project is different too and to be successful in finding the right professional tester for your project different characteristics may be important. There are many characteristics to be considered so to be able to recognize professional testers heuristics can be used. Heuristics are fallible methods for solving a problem or making a decision, shortcuts to reduce complex problem or rules of thumb. They are used to determine good enough feasible solutions for difficult problems within reasonable time. On Wikipedia I found this definition: “Heuristics are experience-based techniques for problem solving, learning, and discovery that give a solution that is not guaranteed to be optimal. Where the exhaustive search is impractical, heuristic methods are used to speed up the process of finding a satisfactory solution via mental shortcuts to ease the cognitive load of making a decision.”
My heuristics for recognizing professional testers:
1) They have a paradigm of what testing is and they can explain their approach in any given situation.
Professional testers can explain what testing is, what value they add and how they would test in a specific situation.
2) They really love what they do and are passionate about their craft.
Testing is difficult and to be successful, testers needs to be persistent in learning and in their work. Passion helps them to be become real professionals. Watch this video where Steve Jobs talks about passion
3) They consider context first and continuously.
To be effective testers need to choose testing objectives, techniques and by looking first to the details of the specific situation. They recognize that there are no best practices but only good practices in a given context.
4) They consider testing as a human activity to solve a complex and difficult problem that requires a lot of skill.
Testers recognize testing is not a technical profession. Testing has many aspects of social science since software is built for humans by humans.
5) They know that software development and testing is a team sport.
Collaboration is the key in becoming more effective and efficient in testing. Software development is a team sport: people, working together, are the most important part of any project’s context. A great tester knows how to work with developers and other stakeholders in any situation.
6) They know that things can be different.
Professional testers use heuristics, practice critical thinking and are empirical. They know that time to test is limited, systems are becoming increasingly complex and thinking of everything is hard. Therefore heuristics are a very helpful “tool” for testers. They also know that biases and logical fallacies can fool them. They practice critical thinking to deal confidently and thoughtfully with difficult and complex situations. Testers have to accept and deal with ambiguity, situational specific results and partial answers.
7) They ask questions before doing anything.
Testing depends on many things and what is the context of the stuff I am looking at? What is the information we need to find? What is the testing mission? Giving a tester an exercise in an interview can easily test this. If he or she starts working on it or gives you an answer without asking questions, this tells you something.
8) They use diversified approaches.
There is no approach or technique that will find all kinds of bugs or fulfil all test goals. Different bugs are found using different techniques. In order to be able to do this, testers need to know many techniques and approaches. This demands training, practice and some more practice.
9) They know that estimation is more like negotiation.
Have a look at some blog post by Michael Bolton:
- Test project estimation rapid way
- Test estimation is really negotiation
- Why is testing taking so long
- Project estimation and black swans
10) They use test cases and test documentation wisely.
The context determines what test documentation you should make and what kind of documentation is useful. Quite recently a great (and long) article by James Bach and Aaron Hodder was published in Testing Trapeze “Test cases are not testing: Toward a culture of test performance”. Also Fiona Charles has written some interesting stuff about test documentation in her article the Breaking the Tyranny of Form.
11) They continuously study their craft seriously, practice a lot and practice “deliberate practice”.
Deliberate practice is a structured activity with the goal of improving performance. According to K. Anders Ericsson, there are four essential components of deliberate practice. It must be intentional, aimed at improving performance, designed for your current skill level, combined with immediate feedback and repetitious.
12) They refuse to do bad work, never fake and have the courage to tell their clients and the people they work about their ethics and values.
Testing is often underestimated and many believe “everybody can test”. I have experienced project managers who tell me how to do my work. Professional testers know how to push back and are able to explain why they do what they do.
13) They are curious and like to learn new things.
Testers find pleasure in finding things out. A good read is the curious behaviour by Guy Mason: “a curious mind is one that could be described as an active, engaged and inquisitive mind. Such a mind frequently seeks out new information, enjoys discovering what there is to discover and enjoys the process that comes along with this goal.“
14) They could have any of the important interpersonal skills mentioned in the list below. As stated earlier it depends on the context which skills are most important.
- Writing skills (like reporting, note taking and concise messages)
- Communication skills (many different like listening, story telling, presentation, saying no, verbal reporting, arguing and negotiating)
- Social and emotional skills (like empathy, inspiring, networking, conflict management and consulting)
- Problem solving skills
- Decision making skills
- Coaching and teaching skills
- Being proactive and assertive
15) They have excellent testing skills:
- Thinking skills (critical, lateral, creative, systems thinking)
- Analytical skills
- Risk analysis
- Planning and estimation
- Applying many test techniques
- Designing experiments
Have a look at the Exploratory Testing Dynamics in the RST appendices where several lists of skills are listed.
16) They have sufficient technical skills.
There are many technical skills a tester needs like being able to use tooling, coding skills or willingness to learn what they need to know about the technical structure of the application they are testing. Test automation skills like scripting and SQL skills to work with databases, being able to configure and install software, knowledge and skills to work with the platform the system under test is on (Windows, Linux, Mobile, etc.).
This list is probably not complete. It is very well possible that I have made some mistakes. So please let me know if you have any contributions or improvements. Also: being a professional doesn’t mean you are an expert on all mentioned skills. Have a look at the Dreyfus model to learn more about expert level. A real professional knows what he or she can do and when to ask for help. They do not fear to learn and they are not afraid to make mistakes. I guess that would be the 17th heuristic in the list.
BTW: I googled “code of ethics software testing” and found the ISTQB Code of Ethics for test professionals. I wonder if people who pass the exam know about these AND more important practice them… What about you?
Some more posts that discuss great testers:
- Becoming a world class tester
- What makes a good software tester?
- 10 Things you can do to become a better tester
- What makes a good tester?
- 10 features a perfect software tester should have
And last but not least: have a look at the Testers syllabus by James Bach. An awesome document which lists many important skills and areas of knowledge. It inspired me read about and study different areas.
Kind of Looking for sheep with say 16,5 legs…. Like it though
You don’t have to be an expert at everything mentioned. I would expect a decent level of skill in most of them. And decent as in: fit for the job/team you work in. A professional tester gets a lot of money for it, so I would argue that we may expect a lot.
For whatever reason I fell across this, and did not recognize how old the article is. How many of us are also and still experiencing professional testers only! But I wonder how to get them to become test professionals, and what it really takes to reach that, time, convincing, learning, experience…. I have not seen too many opportunities to take that time.
I have written a blog about how to become a test professional here: “A Road to Awesomeness“. And yes, it takes a lot. But to be(come) a real professional, you need to do a lot. Compare it with professional soccer players: they train every day! I am not sure if I understand what you mean with “I have not seen too many opportunities to take that time“. I think we can only encourage others to start learning and practicing to become real professionals. I wish organisations hiring these “testers by profession” would do a better job in recruitment and performance reviews to make it less easier to fake…
Hi!! just FYI, “ISTQB Code of Ethics for test professionals” link is missing.
Thanks! Fixed now.
I consider that #17 is the greatest impediment to fulfilling #1-16 to your best potential.
Here’s a few snippets of inner monologue from my last 18 months:
This way works, why change? What would my stakeholder say if the risk didn’t pay off?
I think I’ve thought of something new and I think it might work better or in some way add value. If nobody else is doing it, they’ve probably already thought of it and discarded it.
Now don’t get me wrong, I’m no slouch. I pulled out my tools from #14 and got my crackpot ideas mooted by our community and used it to overcome my self-imposed bias against change!
This is great – thanks! A very interesting and thought-provoking list of tester characteristics.
My only quibble/comment is on 16) Technical skills – these are skills that testers “may need” – I don’t think every tester needs to have them all, or even any of them. A good tester should recognise when they need technical help, know where to go to get it (cf 5 & 14), and can explain what they need to be done.
For example, testers should be able to write and run automated tests without having technical skill in using a scripting language, but that requires help from testware architects and automators to provide the automation infrastructure to allow that.
Knowing what tests to automate and what tests are better done manually is something else good testers should know.
A valid list, still we need to interact and handle all sorts of personalities and different professionalism levels, which enables professionals to continue improve themselves. This shouldn’t be restricted to testers only, it should make a big impact for developers also or any other role
Nice list. I like it.
While not specific to software testing, the Code of Ethics of the Association for Computing Machinery (ACM) was adopted in 2006 by the Association for Software Testing as “a series of principles to guide and govern practice among its membership.”
ACM’s Code of Ethics can be found here: http://www.acm.org/about/code-of-ethics
I’ve done a debate on SW Testing Ethics on euroSTAR in 2009 and wrote an article about the outcomes (added with results from expoQA, PNsQC, tvik and some Dutch debates), it’s interesting to do the debates and to hear the different perspectives. Too bad you seemed to missed it in your search… You can find the article on funtestic.nl
Yes, I guess I read the Code of Ethics when I took that ISTQB exam… never thought about it again… now when rereading it, I like the bottom two best (COLLEAGUES and SELF), since they practically make the first six void.
I could write a full blog post on Codes of Ethics. They are often used to get everybody within an organisation or a company on the same page. By nature, people are not on the same page, so what are you trying to achieve? I think they are futile and – no offense – very American. Whenever I have to sign a Code of Ethics, I feel like I’m not trusted, regarded upon as ‘evil by nature’. Signing them does not affect my behavior (although studies have been done that prove the opposite), it is maybe only the rebel part of me that wants to rebel more because of it. I can sign it and still behave like crap, and I can refuse to sign it and still behave like an angel. And what are you going to do when I do not follow ‘the code’? Wave the signed copy in my face and patronizingly tell me to behave? Dunno, just never really been a big fan of them… If you want people to behave (more) ethically, it should be a joint effort, not a Code of Ethics.
As for the blog post: luckily, you are not looking for sheep with 17 legs, but it is an interesting list of which quite a few points are often overlooked. Thanks for putting them out there.
Something I would like to add: they are not afraid to share their knowledge and are happy and willing to do so.