The following is a Guest Blog Post by Joel Montvelisky from PractiTest. You can follow Joel on Twitter at @joelmonte and PractiTest at @practitest, and we also suggest you visit the QA Intelligence blog.
If you look up the meaning of “Profession” in a dictionary you will find some good definitions such as this one, from Merriam-Webster.com:
“A type of job that requires special Education, Training and Skill”
As much as this is a correct definition, I feel that it lacks something to be a complete definition.
Specifically, what I am missing from this definition is that a profession is also something the individual should…
Belong To and Identify With as a person.
In short and looking from our narrow testing perspective, I think that even though anyone can “work as” a tester, only a professional can “be” a tester!
What does it take to be a tester?
Talking with fellow testers and reviewing the way we work and behave I came up with the following list of the things we can each do in order to become more professional tester:
1. Map your “virtual toolbox”
Your virtual toolbox is the set tools you have to do your work. I don’t refer here to physical tools or programs, but to the virtual ones in the form of acquired knowledge, skills and experience that any professional should know when to use and how to use them.
Specifically around testing, it refers to the testing techniques, technological knowledge and also the actual testing skills that you know how to use when you work.
2. Combine multiple testing techniques
Make sure you are not using the same technique and approach to do all of your testing. It is important and even necessary to combine multiple techniques all the time.
For example, you can combine Exploratory Testing with “Soap Opera” Scenarios, or Script-Based testing together with Bug Hunts, and so get more varied results and better coverage of the application under test.
3. Use technical tools
You don’t need to be a programmer to use more technical tools today. There are plenty of frameworks that you will be able to learn and to use for your work!
Find ways to automate parts of your testing and work to become more efficient. Learn a scripting language, download a tool and spend some time perfecting your knowledge of it.
4. Be part of the “technical talk” of your project
Many times we feel that most of the decisions about new features are made without us even being aware of them. This happens because many testers tend to keep away from the technical meetings and discussions taking part in their teams.
Get involved in the technical aspects! Participate in design sessions and code walkthroughs, learn about the system’s architecture, ask your programmers about the internals of their work.
Even if at the beginning you feel like you don’t understand what they are talking about, once you learn the “language” of these sessions you will be able to gain a lot of knowledge from them and even contribute with your own feedback and experience.
5. Learn to work with application feeds and logs
A lot of the information we can use from the system under test is not available to users as part of the GUI. Following up on the technical aspects of your work you should learn to work with as much “internal information” as possible.
System feeds, product logs and monitoring tools will help you understand not only what happens to the UI but also what’s going on “behind the scenes” of your product.
6. Make an effort to meet your users
In the past I wrote about the fact that you cannot really test a product unless you understand how your users work and interact with it.
That is why you need to make efforts to directly interact with your users; if possible, visit them to see how they work, and try to understand what are their real needs and problems.
7. Create user profiles
Even if you went out and visited your customer, which I think it is extremely useful (if not absolutely necessary!), you still need to have something handy to help you make decisions that relate to your users’ behaviour when you are testing and even when you are reviewing the system with your programming peers.
Creating Personas or User Profiles will give you something tangible you can use while planning, developing, testing and discussing your product.
8. Manage the risks of your project
We all know that testing is not only about pressing keys and running scripts. It is about providing visibility into our product and the process we are following to develop it.
When we provide feedback, we are automatically in charge of detecting and communicating risks. If your project does not have a person in charge of managing these risks you should go ahead and take charge of this task.
It will help your team to release the system on time, with quality, and it will also cement your contribution to the management of the project!
9. Start testing earlier
This one is simple, but on the other hand it may be harder to achieve since it is not always up to us. Most of the time our team is running behind trying to cut and overcome all the project delays caused by everyone else who was working on the project before us.
Still, make an effort to not wait until they “throw the first build over the wall” to start your testing efforts!
10. Manage SMART Communication
If you are a manager or a lead in your testing team you will surely know that one of the most challenging aspects of our work is communicating what we are doing in the testing floor to the rest of the organization.
Management are not really interested in the actual testing, but they need our information in order to make some of the most crucial decisions of their work.
When will the product be ready…?
When can we commit with a Strategic Customer…?
Is the functionality what the customer is looking for to sign on the deal…?
The best way to communicate with the rest of the team is via SMART communication. Look to create graphs, reports and dashboards that are:
- Simple – easy and quick to understand! Don’t make your stakeholders think before being able to reach their conclusions.
- Measurable – the information should be objective and everyone should be able to gain the same insights from it.
- Actionable – as much as you can, provide information that will guide users to make the proper actions.
- Repeatable – most people, especially when presented with “bad news,” will want to know how the same thing was or behaved in the past, and will want to get progress reports moving forwards. Make sure you are able to repeat the measurement if needed.
- Timely – the most important factor of all! You are providing information that will help make decisions, and these decisions have timelines attached to them! Make sure to provide the information while there is still time to influence the decisions of your stakeholders.