In the past few years, I have been able to see the software testing industry from multiple perspectives: as a tester, a test lead, an interviewer for a contract testing position, and as a prospective employee looking for a job. I have written many blog posts describing those experiences with the one goal of helping to improving the software testing profession. Many of my blog posts are inspired by experiences that provide insight into the profession such as books, seminars, or work experiences. The purpose of this article is to try to convince you of one common thread in many of those blog posts – we need better-trained testers (and companies that expect that level of training when hiring). Specifically, testers should have practical training in communication and critical thinking in addition to the specific technical skills required for that team.
An important first step in training a new tester is get them to recognize that the they are an integrated part of your team. In one blog post, I describe my view on the meaning of team, value, and quality [http://www.softwaretestingclub.com/profiles/blogs/a-conspiracy-of-quality].
That post emphasizes one of the primary skills required by a tester: communication. In our global environment, culture should not be a barrier to communication. Instead, part of the testers job in communication is to develop understanding through interaction of other cultures. That is a necessity in not only communicating with your team, but also in understanding the needs of your customer. When training a new tester, companies should place a high value on improving oral and written communication skills, as well as providing a background in the expected cultures of the customers.
Another important skill required of a modern software tester is critical thinking. Over the years, I have come to understand that you should not train your testers in what to do or how to do it, but instead you train them in how to learn, assess, question, and understand. After attending one online software testing seminar, I wrote a blog post describing how I applied that training to in turn help train a new tester at our company [http://www.softwaretestingclub.com/profiles/blogs/applying-the-lessons-of-rapid-testing-intensive]. In that blog post, I describe an outline of the way I introduced the new employee to software testing using a two-week structured approach with an emphasis on critical thinking.
These two core tester skills, communication and critical thinking, are by far more important to the training of new software testers than technical skills. This became very clear recently when I posted another article where I conjectured about the future impact of automation on the tester’s job [http://www.softwaretestingclub.com/profiles/blogs/how-you-may-enhance-or-lose-your-testing-job-with-automation].
This thought experiment came about after I read the book “The Second Machine Age” by Erik Brynjolfsson and Andrew McAfee. My primary conclusion from that effort was that tools will continue to evolve that will allow a single tester to perform many of the mundane tasks done by teams of testers now. Some examples of these tasks include test case generation and automated script generation.
My own experience working as a tester on different teams confirms that conclusion. I have found that I could independently support product teams ranging in size from 4 to 12 developers. However, I have had to use all of my past experiences to develop the process for each team to meet their needs. That sounds impressive, but I have found it difficult to develop a satisfactory way to train other testers to perform the same task. Either the tools we were using were too complicated or the skills were always changing from team to team. With the advances in tools that I expect in the near future, this should become a more realizable model for intermediate testers without those years of experience.
Currently, many companies have a hierarchical test team structure, with a single “advanced tester” leading a team that takes direction in writing test cases, running test cases, or automating test cases. On those teams, the testers are only trained on the specific task or technical skill the team needs at that time. As the tools improve over time, those hierarchical test team structures will become less and less cost effective. If that happens, then segmenting testers into stove-piped technical roles that exclude them from properly learning and utilizing the core skills to independently test applications could lead to future sudden disruptions in the team, the business, and the industry.
Those type of disruptions are not beneficial to individual testers or the industry. Training your testers properly by focusing on the core skills of communication and critical thinking (instead of narrow training in specific tools or tasks) is crucial to the long-term health of the software industry in terms of reputation, effectiveness, and adaptability to change.
Jeff Lucas has over 30 years of test automation experience with 10 years developing automated tests to assist in exploratory testing of Java enterprise software applications on various teams. He is currently working as a hardware test engineer applying the lessons learned from software testing to develop automated test program sets using the National Instruments TestStand and LabWindows/CVI frameworks.
You can follow him on twitter @testtooljunkie or contact him through the Software Testing Club at http://www.softwaretestingclub.com .