I have just started working for a company as a QA Automation Lead, and have been informed that someone will be joining me to start the testing efforts here at this company. I have just found out who this person is, and it is someone from a customer service role that has never done QA work in previous jobs; and my responsibility is to train this person. My questions are: "Where would you start to teach someone how to do QA?" and "Are there any good references that I could get him to look at before this person starts?"
As the new person is from customer service, we can safely assume manual tester (no programming/automation skills), but knows well the application to be tested. Should be excellent explorative tester!
Simple start is to develop testing scenarios, and learning how to fill good bug report (with steps to reproduce the bug) and triage bug severity.
- How do you prepare yourself for a testing position? (with books to read)
- How should you interview for QA positions?
- http://www.kaner.com/pdfs/QWjobs.pdf - Recruiting testers
- http://kaner.com/?page_id=8 - testing courses
- http://bbst.info/?page_id=9 - with links to QA terminology
I will say that you can start in the following way:
Take an initial interview of the person, not for rejection or selection but just to know the skillset of the person. I generally ask analytical questions just to know the general ability, analytical and reasoning skills of the person. These are important asset of a tester. He should have a good problem solving attitude and never give up skills which are required for finding bugs, reproducing issues and running same test case/scenario multiple times.
Reasoning is required for one-to-one or one-to-many discussion with developers about the defects and how it can be reproduced. By these sessions you will know the capability of the candidate and where you need to improve and train him.
After that start his training (below is what I do and follow)
Train him/her how to put himself/herself in customer or end user shoes; it is too of utmost importance, as a tester needs to behave like multiple set of customers. Every customer will fill a form or submit an application with different mind-set, different values and different technique. Tester should use these different combinations to find more defects before end user finds it.
Create a training plan with topics, planned dates and rating for him/her. You can cover topics like STLC, Workflow models and processes, what is testing and why required, Testing Techniques, Testing Methods, Approaches, Test Case, Test Data creation, Priority & Severity, Defect Life cycle etc.
Make him learn testing terminologies like BRD, RTM, USD, SRS, FRS etc.
Assign some manual testing topics to him/her on daily basis, which he should study in and after office hours. Tell him to google the same, you can too provide some good and useful links to him for study. Ask questions to him about the provided topics, let him briefly explain the same and then provide your feedback.
Regular feedback is important for his improvement. Update the plan on regular basis. Add or delete topics you are required to do. Tell him about your expectations, where he lacks and where he is good.
Provide some assignments to him where he needs to read the requirement, give you reverse presentation, create test cases, you review his test cases, he will update the test cases, execution of test cases, finding defects and logging them (let’s say in excel). Review his logged defects for proper Priority, Severity, Description and Steps to reproduce etc. Provide such more assignments (may be from google or from the actual on going product). After 2-3 assignments ask for estimates from him, so that he knows whether he is capable of doing assigned task ion his provided time or not.
Train him more about the negative scenarios, as this the area where generally things don’t work. You should test his tested work and then provide him feedback that what defects he left in the application and how to approach for them.
Keep him stick to the manual testing only, until he starts picking up things and his basics are clear. Don’t rush him for Automation and NFR testing (Performance and Security testing). Once basics are done, move him to automation.
Along with training involve him in your project too, where he needs to work finally. Start with assigning him fixed bugs, which he needs to re-test, as the bugs will be having all the required information he needs for verifying it. But don’t let him close the fixed bugs, just collect status from him and then let the actual person again re-test the same and then close it. After this, show him where he had made mistakes, he might presented you in his report that a defect can be closed, while it is actually not fixed.
Involve him in each requirement discussion meetings, tell him to take notes and publish the minutes. Review his minutes and then publish to all stakeholders.
Avoiding philosophical answers, I'd say that you should decide which developing\testing methodology you are going to follow. Then, you should clearly understand the skills and background of this guy and provide him proper books and (why not?) web forums like this one.
Perform a wide overview of the software you are going to test (is it only testing?) and start with the training on the job.
If the helper is the right one the rest will follow.
Note: Just a suggestion, try to always be honest about your expectations.