Where do you find new testers? For the most part, the answer is typically NOT "from your local university computer science or software engineering department." Testing just isn’t taught as a subject in most university curricula. At the Florida Institute of Technology, where I teach, it is.
But it hasn't always been so.
Four years ago when I first suggested that testing be added to the computer science curriculum, my faculty colleagues thought I was crazy. Of course, no one will want to take a testing course! Students want to write code, not test it! But the fact is that my testing class is the number one elective in the computer science department. It often fills up on the first day of registration and, invariably, I have latecomers begging to get in. And we have plans to increase the focus on testing this fall when Dr. Cem Kaner joins the full-time faculty. In fact, Dr. Kaner's plans are nothing less than teaching testing to freshmen, making sure they understand how to test even as they learn how to design and write code.
Currently both undergraduates and graduate students at Florida Tech have a wide selection of testing courses to choose from. If they so desire, they can have two or three semesters of testing courses under their belts before they graduate. They can also choose to participate in projects to test real operating systems, real Web browsers, real desktop applications, and real embedded systems. They have an opportunity to expose major flaws in released products and build real experience designing and deploying test automation. They may even be one of a select group of student scholars who meet weekly to discuss unsolved problems relating to test specification, selection, verification, and measurement.
What type of black magic am I performing at Florida Tech, to open up these opportunities?
The answer is simple. I have created a practical, nuts-and-bolts testing curriculum in which students learn, have fun, and end up with great jobs. Former students ensure good future enrollment by plugging the courses to their younger colleagues. A society of testing enthusiasts has arisen at Florida Tech—beyond what I could ever have dreamed possible four years ago when I finally convinced a skeptical computer science faculty to create our first course in software testing.
My goal here is to encourage others to establish programs of their own, because the demand for advanced testing research and good new-hire testers is way more than one university can supply. Besides, every time I speak at a conference, the question I get asked the most is: "How can I get my local university to do what Florida Tech is doing?"
Unfortunately, we all face an uphill battle. The reason that people seek out faculty positions in the first place is to pursue what they want to pursue, not what a company might tell them to pursue. I can imagine my own laughter if my boss here at the university ordered me to stop specializing in testing and start researching AI, or worse, software process!
Step One, then, has to be to size up your local university and to begin to drum up interest in testing. The best way to start is to call the department heads in computer science the faculty. Most universities have a lecture forum, and are glad to have industry speakers present their work. If you make such a presentation, you may meet faculty with overlapping interests.
Your strategy for such a presentation is to get them interested in the technical problems associated with testing. How do we model input domains? How do we determine that one set of tests is better than another? How do we capture expected behavior and compare it to observed behavior? How do we decide when to stop testing? These are fundamental issues that are unsolved in practice, and are of immense theoretical importance. These are the types of issues that will excite academics.
Once you meet the professors who are interested in software engineering, invite them to tour your facilities and labs. Now it's your job to do a little selling for your company. Show them what a great place your company is, and get them excited about your testing activities. After all, you need to build a relationship—and having an open-door policy to the university is a great way to show them that their input is valuable.
Step Two is to get an introductory testing course in their curriculum. Perhaps you can help teach it by providing guest lectures and helping design homework problems and class projects. If you follow our model, you can even get the students to help you test your own products during class. There is nothing like several hundred eager fingers banging away at your application to smoke out some bugs and get students enthusiastic about testing!
Step Three is to prevent the university from losing interest. If it's a one-sided relationship—if there’s a steady stream of students and technology into your company, and nothing that your company returns to the university—they will eventually stop talking to you. You must keep the relationship "win-win," and this means funding and collaboration. Faculty members are judged for promotion and tenure based on external funding and publishing. If your company can define valuable work that can be subcontracted to the university, then two things happen. First, you get the work done. Second, the faculty members involved get both credit for the grant and the opportunity to do real work. Real work is easier to publish than theoretical treatises.
Co-authoring papers that result from collaborations with university faculty can be an eye-opening experience. One thing we learn in graduate school is how to analyze and report data, and professors have lots to offer in those areas. Often the lessons they learn from probing that data and writing their papers can lead to significant insight—insight that might otherwise be neglected, and that you might have never benefited from. You see, we academics have the time to sit and think about things that industry types in constant "ship-mode" might overlook simply because they have too little time to reflect.
Finally, it's imperative that you actively participate in joint projects. This is not just about getting cheap labor from a university; if it is, then the relationship will not work. You and your colleagues must make your presence known at the university. Visit classes, give talks, and attend working sessions in the labs. The students will benefit from your knowledge and experience—and I'm willing to bet that you'll enjoy a touch of campus life again.
You'll know your relationship is working when the faculty members that you support get promoted. You'll know it works when your team is loaded with talent from the university. You'll know it works when it keeps working, year after year.
Good luck. Let me know if I can help.