Starting a Career in Software Testing

Formal education is important, but if that's not an option and you have an opportunity to enter a testing department, take it.

One of the most frequently asked questions in the USENET newsgroup comp.software.testing is something like "Where is a good starting point for becoming a software QA specialist? I have an opportunity but not much experience. Any suggestions are welcome."

My emphatic suggestion: TAKE THE OPPORTUNITY.

(Much of the time, by the way, "software QA" is a misnomer: a company often uses this term as a name for its system testing group. Quality should go into every portion of the project at every step of the way; that makes everyone--developers, tech support people, and tester--quality assurance staff. In this document, I assume that you have an opportunity in or a desire to learn software testing.)

Attend the Earn-While-You-Learn University.

It is unlikely that you will get any better long-term, day-to-day teacher than experience. All employers these days recognize that there's going to be a lot of learning on the job in any case; today's high-end technology is tomorrow's Tamagotchi, so we're all dealing with new stuff all the time. If an employer is willing to pay you while you learn, that's just fine; if the employer is willing to train you and provide you with mentorship, so much the better. More about education in a moment.

Read.

Start with Testing Computer Software, by Kaner, Falk, and Nguyen. When you've grasped it, look at The Craft of Software Testing by Brian Marick, and some of the other books listed in the comp.software.testing FAQ list for more technical and formal testing techniques. Drop in to comp.software.testing and monitor the traffic. Stroll around the Web, starting from the FAQ and hopping links where you find them.

Learn.

Learn everything you can about the operating environment under which you'll be testing. Learn how to use batch files, scripts, or macros to automate repetitive tasks. Strongly consider learning low-level languages such as C or C++ to understand how programming in general works. Later apply this knowledge to automated test tools, but learn how to recognize the good uses of test automation from the bad ones.

Learn how to use the product you're testing. Become adept at it, and learn all you can about the discipline in which it works. On the other hand, try to retain an open mind; part of the skill of being a black-box tester is approaching the program with as few preconceptions as you can, the better to stay perceptive and observant, and thus find defects.

Learn how to write cogent defect reports so that the defects you find can be found and fixed. Learn to write better in general--you can find some basic suggestions here--since part of your job as a tester will involve lobbying for resources, or arguing diplomatically but assertively to have particular defects addressed.

If you have an opportunity to obtain formal training at a university or technical school--especially if your employer supplies or subsidizes the fee--take it. Not many colleges or universities so far offer accredited courses in formal testing techniques; in the meantime, courses in Computer Science are helpful. You can find a list of academic institutions that do offer quality- and testing-related courses at the Software Research Institute's Quality HotList Educational & Academic Institutions page. I can personally recommend (however immodestly) my own course offered through Advanced Information Technologies. I also recommend Cem Kaner's course on Black Box Software testing; you might be able to find out where and when it is being offered by checking at Cem Kaner's Web site. Be on the lookout for conferences on testing and QA, and try to attend them; negotiate with your employer to pick up the cost. At such conferences you may quite possibly learn techniques that will save weeks of work on your company's projects.

Ask lots of questions.

Don't ever be shy about asking questions. People are not mind readers; they can't be expected to offer information or advice without you asking for it. Recognize within yourself the power to understand anything if you're given a reasonable explanation. Don't worry about looking stupid or feeling silly because you don't understand something. If you don't understand something, it's the explainer's problem; keep asking for different models or analogies until you get it. The real mentors will hang in there with you and help you along; cultivate relationships with such people. Try to ask your question and get your answer in public forums; you might feel uncomfortable at first, but there are likely others even more shy than you are. Someone who helps along the process of learning is a leader, so ask away; other people will appreciate your bravery and will be grateful for hearing the answer. Ask plenty of questions in comp.software.testing, and don't ask for private replies; let others benefit from the answer.

Make friends.

Try to hang out with other testers, programmers, and tech support people; exchange ideas, stories, techniques, and theories. Some kinds of developers are particularly eager to teach you how stuff works, and will natter on for hours if they sense you're interested. From the tech support people, find out about the wacko things that customers have done to extend or break the product; then add those things to your test suites. Don't just meet your colleagues on formal terms; some days you learn more in the pub than you do in the lab. Invite your co-workers to lunch, and don't limit the invitation to your peers--move up the ladder. Good managers will recognize that they can learn things from you, just as you can learn things from them.

Teach other people what you know.

Explaining something to others is a great way to realize new perspectives and a more complete understanding of the topic. Write white papers or articles or technical notes so that you and others can find information more easily, or so your customers or your company's sales people can understand better the technical nature of the product. Share experience and information with the new recruits in your department (there will be someone along shortly, no doubt). If you write something that can be useful or helpful to others, don't be modest or coy about it; post it on the Web or in the newsgroup, write an article, or deliver presentations at conferences.

Keep at it.

Testing (or, if you must, QA!) is a career with real job security. As long as there are people who make stuff, they're going to need people who can figure out where and how it's broken, and that's where testers come in. Keep working, reading, learning, and teaching, and the world will be your oyster; you can stay in testing for life or transport the skills you learn to other fields. If you're being offered an opportunity, grab it and grow from there.

If you (or your company, or your manager, or your employee) need counselling or instruction in testing, I can help with engaging and informative courses on quality assurance and software testing in plain English that save your company lots of time and money; contact me by for details.

Copyright ©2001 Michael Bolton

Back to the Essays page...
Back to the DevelopSense home page...

Last revised: 14-Mar-2001
File name: TestingCareer.html