It all starts with the passion to succeed…
Becoming a good tester does not mean reaching a destination, but rather being on a constant journey into new territories.
It is important to build the right skills that will provide us with the understanding of how to approach software testing. These skills help us build credibility and gain the respect of other professionals involved in software development.
With a strong foundation of skills we have a better chance of succeeding in what we do: we will be able to provide better quality which leads to better products and in the end, to happier customers and users.
"A tester is somebody who knows that things can be different." Jerry Weinberg
"A person who is able to rapidly discover highly relevant information about the product, who makes the most use of any resource that is available to him/her, and who has the respect of people involved in a project. It is a person who can be trusted." Ilari Henrik Aegerter
The above definitions of a tester remind us that testing is about critical thinking and creativity. It is about not believing anything at face value, but always keeping an investigative mindset. Therefore, our passion to succeed and become good testers translates into gaining the respect and trust of our team. We are not there to chase errors, but we are there to build the confidence that we are the guardians of the product quality and client satisfaction.
"Testing is questioning a product in order to evaluate it." James Bach
This definition of the activity of software testing includes one of the most important aspects of testing: information discovery and delivery. Software testing is about revealing the unknown. If quality means value to some person who matters (as Weinberg has defined it) then testing is the service of discovering anything that threatens this value. To discover these threats, a tester needs to be able to do a variety of things, such as review requirements, asking good questions and interacting with a product in such a way that it yields useful information and possible risks.
Given these definitions, let's see WHICH are the most desired skills and WHAT makes us good testers?
After reading about the opinions of some experts in the field (James McCaffrey, Tony Bruce, Jennifer Lent, Lorinda Brandon, Ilari Henrik Aegerter), I have also interviewed some key members of a project (project manager, architects, developers and requirements engineer), the below exhaustive list of skills came out of my research:
Based on the above results, I would like to further highlight the top 5 most desired skills of a good tester.
_"If you can't write your message in a sentence, you can't say it in an hour"_Dianna Booher.
As good testers, we should have strong written and verbal communication skills. We should be able to read and analyze product documentation, gather information, write test plans, write clear bug reports, coherent status reports to management (both formal reports and ad hoc e-mail reports). We have the ability to listen critically and speak rationally in meetings.
We need to be leaders, technicians, and politicians all in one. It is one of the hardest skills to master (for anyone) - how to convey an issue clearly and concisely, in a constructive tone but to also denote the severity of the problem. It becomes even more complicated when you realize how different the audience is for these communications - on one hand, an issue needs to be well-defined technically for a developer to address it and, on the other hand, described clearly enough for a non-technical stakeholder to make an appropriate decision about its impact on the project. At times, testers need to tap into their powers of persuasion when they are advocating for a particular action. It is a problem many testers wrestle with and, if done wrong, can create lasting problems with the project team.
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 and at the same time he sees the pieces that comprise it. This is essential when it comes to building a deep-enough understanding of the product and assigning appropriate priorities to defects. Without truly critical thinking, it would be difficult to design tests which exercise the code in a way that makes sense to the project goals. Good critical thinkers can also identify their own gaps in understanding: they know exactly when and how to ask for clarification. They can gain more respect from a colleague by admitting what they do not know than bluffing their way through it.
"There is a difference between having a question and asking a question." James Bach
Only good questions generate good answers.
It is important to ask questions in order to obtain as much information as possible and clarify uncertainty so we do not do assumptions while testing. The better we know what is important for the business, the better our judgement is.
It is not enough to ask, but it is also very important to ask the right person the right question at the right time with the right tone and in the right place.
Bach said: You need the ability to love the confusion that comes with learning complicated things. It's about hanging in there instead of giving up when something makes you feel stupid for a few minutes.
Knowledge is not static, especially not in the technical field. Continuous learning is essential in order to become better at what we do.
Why flexibility? We need this skill in order to know when to switch between: attention to details (zoom in) and exploration (zoom out).
To be able to see the details, we should: slow down, look closer and observe.
Being able to notice that some little thing is off is crucial in order to find issues - not to mention about validating complex business logic.
If we do not want to get lost in too much details than we should continue the exploration that offers us the opportunity to be more creative. The list of skills can go on as we are in a continuous journey. My secret of becoming a good tester is the passion and courage to continue the journey into new territories. New territories came along with my curiosity to discover them.
Happy testing!