Before a software application is released, its upgrade is already being developed. But what about upgrades for software testers? In this column, Johanna Rothman offers some ways to strengthen the existing talents within your test team.
I was speaking to a senior manager, and he said, "I don't have the money to hire an army of testers. I want a few testers who work well. What I'd really like to do is improve how well the testers work right now."
Want to improve how well your testers work? Assign your testers to only one project or project area for an entire release. Tell the developers for that project or that area that one of their project deliverables is to educate the tester about the product internals. Then give the tester a book about testing or test techniques and let the tester loose.
(I recommend Lessons Learned in Software Testing because it has a huge list of test techniques in chapter 3 sorted in a way that makes sense to me.) Your testers will be significantly better testers at the end of the project than they were at the beginning.
Why? Because each tester had a chance to concentrate on just one area of the product. They had a chance to learn, to experiment, to try new test techniques, to talk to developers…all the things that can make testers more successful. But the key is that they get to stay on one project for the duration. Keeping the tester on one product, and on a large enough product, improves tester skills in two areas: functional test knowledge and product domain knowledge.
Boost Functional Test Knowledge
Testers start with some set of testing skills. They may have learned how to test from the requirements, or perform boundary testing, or know about equivalence classes. But unless they've had formalized test training, they may not know about the numerous ways to measure test coverage, or how to test for performance, or how to test the product under load, or even how to perform end-to-end testing. When testers focus their efforts in one product area, and they have some guidance (such as from a book or coaching from a more senior tester), they have the chance to try new techniques and see what works.
Stan is a tester who likes to plan his tests in advance and detail the results he expects. Stan's boss asked him to try exploratory testing and pair testing for two mornings in one week. Stan investigated these techniques and begrudgingly tried them. When he looked at his results, he found that he had significantly more ideas about how to test the product and that he'd found problems he hadn't found before. Stan still plans his testing, but part of his planning is to choose which techniques to use when.
Focus Product Domain Knowledge
If a tester focuses on one product or part of a product for long enough, the tester becomes an expert in that product. When the tester becomes an expert, the tester creates better tests faster, which leads to finding problems faster. However, testers can't learn about the product if they only spend a couple of weeks on one product or a month on another.
Sally is a flexible tester. You ask her to test something, she does. You pull her off one project and onto another, she goes. Sally wants to work well, and if the company needs her to quickly test something, she will. There's only one problem with Sally. She doesn't know any of the products in depth. She's a great tester with tons of experience and understands many test techniques, but she doesn't work on any product long enough to use those test techniques to the product's advantage.
Sally's manager decided Sally's experience was going to waste. He assigned Sally to one project for the entire duration of the project. He had to take the heat for Sally's lack of availability for those quick projects, but he decided Sally's talents were wasted, flitting from project to project.
Sally learned about the product internals on that project, and did such a good job testing, the project finished a few days early. Sally's testing helped the developers find problems so much earlier in the project that they were able to avoid much of the rework they'd expected. At the end of the project, Sally and the developers gave a presentation to the rest of the development and testing teams, explaining the product's design and how Sally designed the tests. The other developers and testers were able to build on Sally's experience and apply some of her techniques to their projects.Assign Testers for the Entire Project
If you're a test manager, work to place your staff on projects for the entire duration of the project. At the beginning, they can assess the testability of the requirements, design tests for test-first development, test the schedule, develop a test strategy, and start test planning (which area to develop tests for first, how to test). During the middle of the project, testers can create tests, use the product's architecture to design new tests, explore the product, and learn about the internals of the product. At the end of the project, the testers can test, and think about when other techniques will help find more problems as they test.
Testers want to improve their performance as much as their managers do. So focus on the high-return improvements: learning new techniques to test and using the product to focus the testing. Everyone will thank you.
Acknowledgements: I thank Dale Emery, Elisabeth Hendrickson, and Steve Smith for their thoughtful reviews.