My question is regarding education and training to develop a career in software quality and testing.
I have done some (very) minor testing on the V&V team for a client company where I was working as a tech support contractor. When I got a sampling of what QA was like, specifically testing, I was hooked.
What resources, short of investing thousands of dollars in school, can a junior SW tester use to garner some knowledge so that doors in the field are opened? I think a career in quality and testing would be great, and my particular interest resides in automation of testing process. I've done some scripting and coding, but would not consider myself a full-blown programmer.
Any advice on where to begin? And once having started down the path, what are the best options for continuing and furthering education and training?
There are a lot of free resources online that can help you get started. The best place to start for new people is TestingEducation.org. This site offers free videos, papers, and other content covering the basics of black box testing, test automation, exploratory testing and other topics. If you like the BBST videos, you should also check out the various testing videos on Google Video. Blogs can also be a great resource for casual reading. Aggregators like TestingReflections.com are a place to start, but they don't catch all the software testing content. Finding your own aggregator is recommended so you can always track your favorite authors.
There are a couple of good print publications you should consider picking up. I recommend Software Test and Performance Magazine, which is free, so you have no excuse for not getting this one. And Better Software Magazine, which costs money, but you should be able to get a free sample online. Proceedings for conferences like the Pacific Northwest Software Quality Conference (PNSQC) and the Conference of the Association for Software Testing (CAST) are also great resources for excellent content as well. They tend to have more detailed content, more examples, and more references then the magazine articles.
As you learn, don't just learn about testing. In his tutorial on Self Education for Testers (PDF), James Bach shows off his own personal syllabus for what he studies to get better at software testing. The high level topics cover general systems, mathematics, technology, applied epistemology, cognitive science, testing folklore, and communication. It's a great list to demonstrate what kind of variety there is in testing. Don't just focus on topics in testing. While that's important, you'll quickly get bored and you'll also probably develop tunnel vision.
Training is good if you can get it. I recommend conferences like PNSQC or CAST over vendor conferences. I also recommend independent trainers over the traditional software testing training organizations. Start by checking out www.Satisfice.com, www.QualityTree.com, and www.AmiBug.com to get an idea of what courses are out there.
Finally, and most importantly, find the time to practice. Each time you practice testing, you should be interested in doing some specific thing better. By improving one specific technique at a time, you gradually improve your overall ability over time. If you keep reading his tutorial on Self Education for Testers, James Bach offers more suggestions on ways to practice and techniques for rapid learning. You can also take a look at an article I wrote on practicing software testing where I recommended several ways to log some time honing your testing skills.
Longer term investments would include picking up a couple of books including Lessons Learned in Software Testing, any of the books from the How to Break Software series. Currently, I really like the Stealing the Network series for its ability to show actual problem-solving examples. I also recommend you keep working on your scripting and coding skills. This will help you not only in understanding the technology behind what you're testing, but it will be essential for effective automation and will allow you to branch into performance testing later in your career.
Past that, I recommend anything written by a guy named Gerald Weinberg. It doesn't matter if it's his Quality Software Management series, his Secrets of Consulting series, or any of his work on systems thinking or critical thinking -- Jerry's work is a must read for anyone serious about problem solving and becoming an effective communicator and change agent.More information:
Dig Deeper on Topics Archive
Related Q&A from Mike Kelly
There are multiple ways performance testing can be handled on an Agile team. An expert describes the benefits of various approaches. Continue Reading
Every software tool is individually designed to meet various needs and requirements of projects, teams and project managers. Learn what tools experts... Continue Reading
Creating user acceptance tests out of basic software requirements documents can be a daunting task. Expert Mike Kelly points out logical approaches ... Continue Reading