How Do You Practice Software Testing?
- Focusing Your Practice
- Avoiding Automated Performance
- Contributing to Open Source Projects
- Beta Testing
- Pair Testing/Programming
- Adopt "Parallel Thinking"
- Search for Bugs in the Wild
- Learn "Systems Thinking"
- Teaching and Writing
- Participating in Conferences and Workshops
- Develop Your Cognition Skills
- Finding the Time for Practice
Dr. Richard Restak devotes a large section of his book The New Brain: How the Modern Age Is Rewiring Your Mind (Rodale Books, 2003) to the topic of practice. When talking about a person's true potential, he cites the research of Florida State University psychologist Anders Ericsson. Ericsson, studying "superior performers" in various fields, has found that the key ingredient to superior performance turns out to be one's willingness to "stretch yourself to the limit and increase your control over your performance."
That means practice.
This article provides a list of possible ways in which you might practice your software testing. I've included references or examples where I think they might be helpful. This is by no means an exhaustive list; it's some ways in which I or the people who reviewed this article practice. If you practice in some way that's not on this list, I strongly encourage you to add a comment at the end of this article, sharing that experience and some resources to help others get started.
Focusing Your Practice
Restak writes, "[For superior performers,] the goal isn't just repeating the same thing again and again but achieving higher levels of control over every aspect of their performance. That's why they don't find practice boring. Each practice session, they are working on doing something better than they did the last time."
For example, a musician doesn't play a scale repeatedly just for the sake of playing the scale. When I repeat a scale while playing the guitar, it's not so I'll learn the scale; I know the scale. It's so I can get my fingers to know the scale. I want them to move faster and with more confidence. I'm attempting to achieve a higher level of control over my performance. If I can better develop my fingering technique on that scale, I can better control my fingering in other aspects of my playing.
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. In music, I might focus on a specific song for an hour, or a specific type of music (jazz, rock, ska...). The focus of that practice is not the repetition of that specific song or style of music; the focus is on improving a specific aspect of what I'm practicing (speed, technique, experimenting with pedals or amplifiers, and so on). A generic goal of practicing just to "play better" isn't practical. To be more effective in my practice, I need to focus on one specific thing and do that thing better.