The January 2004 edition of Professional Tester contains an article about self education and practise. The article was entitled “Help Yourself”.
Most of the testers I know have educated themselves on the topic of software testing. All of the best testers I know never stop educating themselves and continuing to learn the skills of their trade through study and practice.
Viewing practice as unnecessary is easy when we are involved in a particular skill day in and day out. But we are often doing the same old thing, and the learning experiences may be fewer than we realise. We may be rein- forcing old habits rather than increasing our learning and expanding our knowledge about what we do. The choices we make for testing should be justified, and not be habitual responses to the notion of, or need for, testing.
Although one aspect of the current testing zeitgeist is certification, I recruit by looking at a candidate’s experience on their CV and, during an interview, by trying to determine what insights they have learned from that experience.
Work situations may not always be the best place to learn. Learning requires the ability to get it wrong, to experiment and to try new things. Sometimes this is going to require doing and studying testing outside of the work environment. Take the time and give yourself permission to learn.
Test process improvement can start by improving yourself and becoming the best tester you can be. By taking responsibility for the state of your own skills and your own skill development, you can rapidly become a much more effective, knowledgeable and experienced tester.
Use Self-education methods
Early in my career, I thought I knew a lot about software testing, just from reading. I was reading everything I could get my hands on. Sadly some of my knowledge was superficial as I hadn’t learned how to apply it, and I made mistakes along the way. The books and papers I was reading were not enough for me to know how to apply what I was learning. And, I admit, I have created testing processes that were inflexible, overly formal and bureaucratic. I have previously set up a lot of hard work for myself, and my fellow testers, that the situation I was in didn’t require.
Now though, I have learned to better use the knowledge that I have and apply it more effectively and contextually to the situation I am in.
The point? Reading and study is incredibly important and useful, but never underestimate the need for putting this knowledge into practice and learning from your own experiences of doing testing.
There are of course many testing books available. My own favourites include:
- Beizer: Software Testing Techniques
- Binder: Object Oriented Software Testing
- Kaner, Bach, Pettichord: Lessons Learned in Software Testing
- Black: Managing the Software Testing Process
[all very well-known and widely available. Ed]
But don’t trust me; ask other testers what they recommend, check what people say about the books on www.amazon.com, flip through the books on bookshop shelves and see how readily the contents apply to your workplace and environment. When you buy a book, you are investing in its contents, not just with the money you pay for it, but the time you spend studying it, so evaluate it carefully before you commit.
And as you read the books; make notes on, think about, and disagree with what you read. Just because they’ve written a book doesn’t make them right, does it? Testers are never the most trusting of people; it makes sense to validate the information we get.
You can bring a lot of your own wisdom to this field by reflecting on subjects that you do, or study, and seeing how they relate to soft- ware testing. All the best testers I know bring in ideas and techniques from other areas of study, for example philosophy, logic, physics, martial arts, psychology and strategy. There will be parallels and lessons that you can identify that will expand your knowledge, approaches and attitudes to software testing.
“Half an hour of playing with awareness is worth six hours of playing without” – Joseph O’Connor, Not Pulling Strings, 1989, Metamorphous Press
In my spare time, I download stuff off the Internet and test the **** out of it. This is commonly known as beta testing and is a great way to practice what I have read and studied.
By beta testing I get to test different types of software, on different hardware platforms and operating systems, in ways that I might never be exposed to in my normal working life. I can identify, and learn, new tools that will help me in my daily testing life, and I can return to my normal testing projects with new experiences and attitudes that will give me more options in the way that I test.
By doing we learn; what works under what circumstances, to identify what doesn’t work, and what things we do that can be made more efficient. By practising, we typically do things with more attention, and we learn, not just the results of the act, but from the experience of the performance.
Learning from experience
So how do you learn from experience? Well, you could wait till something similar rolls around and hope that you remember what you did. Or you can take a more direct and structured approach to your learning:
We have all had experience with testing, and we all know about post implementation reviews. So conduct some for yourself on your own experiences. Think about the testing you have done and reflect on it; what went well? What went badly? What would you do differ- ently now? Is there a generalised principle there? Ask yourself plenty of questions, and document them.
I have a notebook that I carry around everywhere with me, so that I can document any thoughts that relate to my understanding of testing. I would encourage you to do something similar. Documenting your thoughts helps you phrase them in such a way that you can communicate them to others, but more importantly, it allows you to review and evaluate them yourself more objectively, and you can recall them more readily in the future.
Often we think of skills required for testing in terms of test design and test execution, and that can be translated into knowledge of test techniques, tools, programming/scripting, and heuristics.
A more detailed list of skills would add: planning, designing, managing, communicating, understanding quickly, estimating, influencing, and honesty.
All of the above can be studied. All of the above can be practiced, and life will undoubtedly present you with plenty of opportunities for practising them. All of the above will help make you more effective as a tester.
“…the best way of learning is not through the computation of information. Learning is discovering, uncovering what is there in us.” –Bruce Lee, Artist of Life, 2001, Tuttle Publishing
- testing is a skilled profession requiring a variety of skills, all of which can be improved through practice
- testing is a doing thing
- self-education comes from experience and study
- education and learning never stops.
By presenting these self-education methods, I am not ruling out training courses, learning on the job, discussing testing with other testers, going to conferences or certification. On the contrary, use every opportunity and avenue available to learn as much as possible.
But I firmly believe that you will gain the most by taking control of your own education process. Relentlessly pursue a self-education process and voraciously expand the scope of your learning into areas that you do not experience every day. Continually question your current test processes and beliefs about testing. Learn continually and never stop learning.
I’ve questioned and observed the best testers I know to determine how they got to be as good as they are. Each and every one of them did, and continues to, pursue a programme of self-education. To the best of my ability, I’m doing this. And I know that as you do this, you can surprise yourself with what you can already bring to your learning process and the scope of what your learning process can encompass.