How to Train Up a New Software Tester
By Claire Reckless
We've all been new in a testing role at some point. You might remember starting out as a tester and whether you received any training at the time. Did it help to set you on the right path in your testing career? Were you thrown in at the deep end, given no training at all, and expected just to get on with it?
One thing I've heard a few times over the years is 'No one teaches you how to test, I just had to do it'. Maybe you thrived in that environment, lots of people do. But maybe you felt a little bit lost, unsupported and unsure of what you were supposed to be doing and why. Even experienced testers can feel a bit like this in a new role.
A lot of us have also been on the flip side of that coin, having some responsibility for training new testers when they join the team. It can be tricky to know where to start when working out what training someone might need. It depends on the person, the context, and what resources you have available to you. Perhaps there is a structured induction and training programme to give new starters a great introduction to the company and their new role, but if this isn't the case you need to provide enough direction and feedback to help someone develop important skills.
There's no one size fits all answer, and when Rosie asked the question there were a variety of responses.
So, what are some of the important things you could think about when training someone new? How can you help avoid a new team member feeling overwhelmed? And how can you give them the confidence to get them on the right track?
Know Their Background
Firstly, make sure you know some things about your new tester! If you were involved in the hiring process you will already have this information.
- Are they completely new to any kind of role. For example, a recent graduate or apprentice?
- Do they have any previous testing experience?
- Have they worked in another technical role, like a developer or support position?
- Do they have domain knowledge?
- What kind of testing things do they love or hate doing?
- Understand why they joined the team and their career goals.
Knowing the answers to these questions can help you to pitch any training you give at the right level and work out what level of supervision is needed. Are you training someone how to be a tester? Or building on their existing testing experience to fit into their new role?
Explore The Product
Letting a new starter get their hands on the product as soon as possible is a great jumpstart to learning it. Encourage them to ask questions so they build their understanding.
- Allocate time for new testers to work through an initial exploratory session, mapping out the main features of the product. By the end of the session they should have some insight into where information can be changed, potential risk areas, and how the product interacts with other systems. Ask them to explain to you what they have discovered.
- You might have product documentation. A getting started guide, product help files, an internal wiki or knowledge base, containing all sorts of useful product information. Make sure new testers know how to access this.
- If the product requires installation or configuration, or test environments need to be set up from scratch, ask them to work through this process. It may help them see what the different components of the product are and how they fit together. They can use this knowledge to develop their own models of the product to assist them in testing.
- Provide details of how to access any log files which might be part of the product.
- Product demos will help them see how the product is meant to be used.
- An overview of upcoming product releases and goals can help a new starter get a feel for where the software is going and the company vision.
- Share stories on successes and failures your product and team have had. It could really help the new tester avoid unnecessary effort or mistakes.
Get Them Thinking Like A Tester
The best way to learn how to test and become familiar with a product is by doing some testing. While it might be tempting to assign a list of test cases for your new tester to run, this might not help them to learn how to explore and question the product. A lot of good testers have a curiosity which leads them to ask 'I wonder what happens if....' and inexperienced team members need to be encouraged to develop this. Make sure you provide positive feedback and constructive criticism, at all stages.
- Assign them an existing feature of the product to test where you know there are issues. Explain how they could use a testing charter to focus their efforts and ask them to document the testing they do. If they find some of the issues but not others, suggest how they might generate other test ideas which might enable them to uncover these bugs.
- When they find a bug ask them to reproduce the issue and investigate it. Have they discovered the circumstances under which it occurs? Can they hypothesise as to what might be causing the problem, isolate it, then refine the information they have?
- Ask them to write up a bug report for one or more of the issues they found. Give examples from your bug tracking system of what you would class as a good bug report. And of course, make sure the bug hasn't already been raised.
- Ask them to create a mind map showing how they might test a feature. Do they focus on functionality only? Do they consider Performance? Security? Usability? Do they perform tests below UI level? Do they suggest any tools they could use?
- Schedule pair testing sessions with other members of the team. No matter how much experience a tester has they can learn from these.
- When they start testing new features, review the testing they do. Make sure they aren't just confirming the acceptance criteria or requirements.
- Assign them bug fixes to retest and ask them to explain how they tested these. Do they focus only on the described steps or explore around the problem?
- Explain what oracles and heuristics are and how these can assist them. Katrina Clokie has a great post which can help you along.
Start To Build Up The Technical Stuff
Your team might use all sorts of technical skills to test the product, and by technical I don't just mean writing automated checks, important as these may be. There are so many different technical skills we might use as testers, think about some of the others too.
What tools do you use to aide testing? Browser tools, add ons, proxies, or system tools are some examples. Ask your new tester to spend some time finding out about them and how they work if they don't already know. Share how they are used in your context and why they support the testing effort. Demonstrate any important tools and how to use them to make sure sufficient information is gathered during testing.
You might also want to consider the following:
- Databases - Ensure they know how to view or manipulate information in any databases you might use as part of testing.
- API testing - If your new tester has not tested without a UI before they'll need to know how to explore an API and interpret the responses.
- Security - An important consideration in all application types. What techniques need to be used here? OWASP provides some great resources for people new to web application security.
- Performance - What are the performance requirements for the product and how are these tested?
- Programming - Where automated checks are a priority, provide resources to help them get started with the necessary programming language.
- Automation framework - If they do have programming experience, walk through how your framework is put together. Ask them to pair with another tester to create some automated checks and perform a code review.
Those Important Processes
The processes we use can make a huge difference to the outcome of a project, so new starters will need to get to know how they should be working. The following are some things you might want to consider:
- Get them involved in team meetings or sprint ceremonies as soon as possible, they will get to know the team members, their different roles and the way you all work together.
- Make sure they understand the purpose of these meetings, perhaps they are new to an agile methodology and could be standing there wondering 'Why do we need to do this?'.
- Let them spend some time sitting with a developer so they can see what they are working on. Do they write unit tests? Do testers contribute to this process?
- Where do automated checks fit into the testing process?
- You might use Continuous Integration, explain this process and it's benefits.
- Are there standards or legislation your team must comply with?
- How does the team prioritise bugs? Is it the responsibility of the tester or a whole team activity?
- How is testing recorded? Provide examples of how your team does this and give feedback on testing they document.
As testers we're always looking for new ways of doing things and when a new person with a fresh perspective joins a team they will often ask questions which can make us re-evaluate our process and even lead to improvements. Where I've been involved in training new testers I've made sure to let them know they shouldn't be afraid to suggest new ways of working, and how participating in things like retrospectives can facilitate this.
What About The Rest Of The Company?
Perhaps your company doesn't have an on-boarding or induction process which covers gaining an understanding of the business as a whole. Usually you don't need permission to just go ahead and arrange for your new tester to spend some time, even 30 minutes, with other departments and find out what they do. This is a great way for them to start understanding the business and company culture and how everything fits together.
It really is helpful to break down walls between other internal teams. Testers often benefit from interacting with sales, professional services, marketing and support teams. Speaking to people in customer facing roles gives the opportunity to find out what types of customers and users you have and can help add an extra dimension to their testing.
It's About People Too
Do you know what support is in place for a new tester? Not just to help them develop their technical and testing skills, but to settle in, and as time goes on, grow and succeed at your organisation.
It's easy to focus on the project work but there should also be support for them to develop their career. A lot of companies will have a structure in place for this, but if not, think about what you can offer to help get them where they want to go. When you've spent time getting someone up to speed the last thing you want them to do is leave because they don't see a way to progress.
- Buddy system - Teaming new starters up with more experienced team members as a first point of contact - to help people settle in.
- Coaching and Mentoring to help them learn how to reach their potential.
- Goals and Objectives - Both short and longer term.
What If They Want To Know More?
When new testers start on a team don't assume they know what exists outside the company. Let them know there are a whole bunch of resources available to help them develop, outside of training that the company might provide.
Make sure links to websites - like the Ministry of Testing Dojo - articles, books, blogs and meetup pages, are easy to find and encourage new starters to contribute anything they might find which could be useful to others.
 Stephen Janaway - Exploring an existing system
 If you had a month to train up a new tester, what would you do?
Lessons Learned in Software Testing - Bach / Kaner / Pettichord
Explore it! - Elisabeth Hendrickson
Katrina Clokie - Heuristics and Oracles
OWASP - The Open Web Application Security Project
How to use mindmaps to develop clarity with your software testing strategy
Exploratory Testing an API
About Claire Reckless
Claire Reckless is a tester at Avecto, working on endpoint security software. Her passion is in helping people learn how to become better testers. Her domain expertise also includes financial and ERP software. Claire lives in Manchester, with her husband Rob, their cat, Max, and Ted the dog. She also enjoys running as time allows. You can find Claire on her Twitter.