A couple of QA & Testing Forums around the Web have been discussing the question of how to train a tester, especially during the beginning of his/her career.
This is one of the most important and challenging question any good QA Manager should ask himself; if not for the sake of his Company and his Team, then for that of the tester, who most probably got to this specific Job as a stepping stone into a more “profitable and exciting” career, and with whom we have only a small window of opportunity to show him the real difficulty, dept and challenges hiding under the responsibilities of a QA Engineer.
I will concentrate on the training I believe should be transmitted during the first year of work, and at the end I will also mention a few thoughts about the follow-up processes for later years.
How to train?
I believe the best way to get someone up and running is by mentoring; this is the fastest & most effective way for a rookie engineer to get a good start. Mentoring also allows the person to learn in his own pace, to ask question and to see the more dynamic side of the Testing Work.
I have 3 recommendations around this method:
1. Implement a mentoring rotation, having your rookie engineer working for some time with different testers performing different tasks. This way he will get to see more aspects of the testing work.
2. Make sure the mentors know what they are doing. You don’t want to create the wrong impression by matching a new engineer with someone who either does not know how to communicate his knowledge and/or for some reason cannot invest the required time on his “student”.
3. Even if you implement a mentoring rotation, define a Senior Engineer as the principal mentor (or Big Brother) of the Rookie for the first year in the organization.
One-on-One mentoring is a good first step, and it serves mainly for the introductory part of the capacitation. After 3 to 4 weeks it is good to let the tester start working on real projects by himself (still under the supervision and help of both his mentor and his manager).
He should work on 2 to 3 projects (and around 12 months) “getting his hands dirty” both on the product and the testing before moving forward.
What to train?
Think about it, what makes a good Tester…?
I wish there was a way to teach common sense, but I guess that this is something to filter out during the interview process before the hiring.
Leaving my sarcasm aside, for now, there are at least 3 different aspects I think are essential for every starting engineer:
1. The Application Under Test (AUT)
By this I don’t mean only the system that he will be working on, but all the information needed to do a good testing job.
To name a few, the things I recommend reviewing are:
> Application History & Evolution – what brought the system to be what it is today?
> Company Culture & Values – what brings customers back to our product instead of going to the competition?
> Competitive Landscape – what’s the alternative to our product, where are they stronger, how is the market shifting, and what are we making to be ahead of the curve?
> Installation & User profiles – who uses our application, what characterizes our customers and their Organizations?
2. Testing Methodologies
This is the Strategic Part of the testing process.
How do you plan a testing project, what should be tested and how, what are the considerations when planning and specially when taking risks, etc.
The idea is not to have your rookie engineer plan his own testing projects up front, but he should understand the reasons for the operations he is performing.
Assuming the person you hired has enough common sense he will work better if he understands how his individual efforts fit into the complete scope of things.
3. Testing Tools (and I am not talking about QuickTest or Robot!)
You want your engineer to start working as soon as possible, so make sure he knows what he is expected to do and how. There are 2 types of tools, technological & methodological, and you should make sure he feels comfortable with both.
It is not logical or practical to try and teach all the tools at once, but as part of his mentoring rotation your engineer should get to know at least 3 to 4 of each relevant type.
I recommend also making sure that even if someone was hired to do a very specific type of testing (let’s say stress testing using LoadRunner for example), during his initial weeks in the Company he will get to know the other types of testing done, since this will give him the perspective needed later in his project.
Follow-up training and certifications
Just for the sake of transparency I am ISTQB CTFL and a member of the ITCB Advisory Board, but my views on formal training and certifications where made up some years before I even though of getting certified.
I think formal training for a Rookie is almost a complete waste of time. Without enough experience it is very difficult to understand why we need all the tools, what are the advantages and disadvantages of each, and most importantly when should we use one instead of the other.
This view goes both for testers who want to start their career by working with an automation (functional, API or load) tool as well as those going for certifications before having at least a solid year of manual testing experience.
Training (and here I include certifications, hoping no one does the exams just to have a diploma hanging on their walls) are an essential part of a testing career path. As an engineer starts working, he will understand what are his strong and weak points and that way he should decide what path does he want his career to take.
I will stop this point here, and probably re-take it on a future post…
If you want to have good testers you have 2 alternatives, recruit people already with experience or recruit people with potential and invest on them in order to help them grow into good Test Engineers.
Training is a project on itself; it needs to be planned, executed, measured, reviewed and improved.
The worst mistake you can make when recruiting a new engineer is to let him sit on his desk and expect him to start testing without any guidance or training. It is the same as buying expensive cooking materials and placing them in the table to be eaten as-is; materials are a critical part of cooking, but not less important is how you cook and prepare them.
Practitest is an end-to-end test management tool, that gives you control of the entire testing process - from manual testing to automated testing and CI.
Designed for testers by testers, PractiTest can be customized to your team's ever-changing needs.
With fast professional and methodological support, you can make the most of your time and release products quickly and successfully to meet your user’s needs.