I previously talked about a person's 'innate curiosity' and 'inquisitive nature', and how this trait lends itself to being in the QA/Testing field. In response to this post I got a comment along the lines of "is this capability of a tester innate or learned?" Which my response is going to be a non-committal 'well... yes and no'.
Yes, it can be learned to a degree. There are different lines of thought process that can be taught that relate to the tasks involved in testing work. We experience this all the way through school in classes on Mathematics (Proof Theorums), hard sciences (Chemistry, Physics), Psychology, and Philosophy (Logic and Critical Thinking). We learn how to 'pick apart' a system (be it biological or non-biological) and prove whether it works or not, why so, and how. That is why I have met a lot of test professionals with non-CS degree's like Biology, Chemistry, Physics, Philosophy, and Psychology. They were taught to be thinkers and researchers. The skills were taught in these types of disciplines, thus it was a nurture type of situation.
Now... No it can't all be learned. There has to be some innate mindset that needs to be present. Personality characteristics are what help drive a person to go towards the disciplines that teach the additional skills and help refine them. Speaking for myself I was always a curious child, I got into things (and a lot of trouble) and always enjoyed pulling things apart to see how they work (my fathers favorite lawnmower was a victim of this curiosity; got it apart alright, just couldn't get it back together correctly again ;-) ). Also, I have a degree in Zoology and got into computers out of interest (and economic need). I was always more interested in the analytical/mathematical side of the discipline (genetics, population biology, epidemiology) and didn't like the classification stuff (what is the difference between a bufo woodhousi and a rana pipiens, there both frogs and who cares). So there was a 'natural' ability present in me. When I first got into the software industry I was a programmer, doing a lot of maintenance work. I debugged/tested and fixed other peoples code, and I naturally moved into the formal testing field quickly when an opportunity arose (I liked it more, and at the time saw it as a career move that would be a better fit for me). Now I still like programming, I do a lot of automation work (functional and load/performance). But I do it in combination with my overall work focus. It is in my nature.
Now I know people will argue this, and I expect it. Does it make me a better tester? In my opinion it does because this line of work can be stressful and tedious, and it takes a certain personality and characteristics to be able to do it effectively. I have met other 'testers' who didn't last long because they only learned the craft and didn't have a built in drive for it. That has been my experience so far.
So is a good tester born or taught? They are born (nature) and they are taught (nurture), which is the key factor. As with anyone we all have natural talents, and it is how those talents are developed (through education) that define our capabilities. As the saying goes "brains only gets you so far, the rest is hard work!"
In part 1 I talked about things such as self study, finding a mentor and taking a realistic approach to your work/job. In part two I want to get more into the mind / thought processes employed when getting into testing. This will talk about the 'inquisitive nature' a tester needs in order to perform the work.
An 'inquisitive nature' is one where a person looks at something and examines it to gain a better understanding of what it is and how it works. Curiosity is another term used for this, and it can be used interchangeably here if you wish. I'll stick with inquisitive for now.
People by nature are inquisitive; children are the best at this. What is that? Why does it do that? How does it do that? When will it do it? Where will it do it? These are basic cognitive questions that a child will ask. These are the questions we as test professionals need to constantly ask, and answer.
What is that piece of functionality? What does it do, and how? Where does it do its function? Where does it come from? Why does it do this part of functionality at this time, a question of when. When does it not do its functionality and why? Who uses this functionality? These are some of the basic questions of the system under test (SUT) for Who, What, Where, When, Why and How. These may be easy, or not, questions to get answers for. It is our job to formulate and get answers to these questions. Because of that we need to also look at the questions and answers for the methods/processes we will use to get the answers of the SUT.
These questions will include; What information about the SUT do I need to learn in order to test it, where is the information at, who is the person that might know about the SUT, when will I need to get the information or perform the test itself, how will I perform the test, what am I trying to prove by doing the test, why should I test that component or not, etc. etc. This is just a sample of the questions to be asked and answered. Testing is about asking questions and getting answers to them.
But this all needs to be done with some sort of organization and plan. And next time I will discuss that aspect of starting out in testing. So come back later and let your 'inquisitive nature' get some answers to those questions.
For the new comers there are some things to learn when starting this line of work.
First, it will be a continuing process of learning. You will always be in the learning mode in your job, be it learning the technology or how the business works. Be continually looking for new information on the subject of Testing, it will help you in your efforts because someone else may have already been there and you can learn from them. Don't re-invent the wheel. There are magazines, books and other items to read. Read them!
Second, give yourself a break. You will not be Joe Stud Tester on the first day. This work is both craft and engineering, it will take time to get it.
Third, get used to being in the spotlight under the microscope. Being in a Testing position will put you at the center of things during a project. Learn to deal with it and the things that come with it.
Fourth, don't take it personally or make it personal. It is your job to find things and point them out. You will take a lot of heat for it, and don't dish it back out because it will only make things worse for you.
Fifth, always be inquisitive and trying new things. By being inquisite/curious and entraprenurial you will keep up the motivation to do the work. Because at times it can be monotonous and a headache.
Understand that your work involves performing tests. This includes knowing how to research a test (review specifications / use cases), write up the process (create a Test Plan and Test Cases, define needed data), setup the test (both the environment and the data needed to execute the test), execute the test (run the test and manage its execution), analyze the test (what worked and didn't work and why), report on the results (write defect reports and execution summary reports), and communicate the results of the test (publish your reports and talk to other people about them).
Learn what the technology is and how it works. You don't have to know it in depth but understand the basics of what is going on. Know how to get in and get 'dirty' with the technology. It will help you be more effective and efficient.
Understand programming and how it is done. You don't have to be a super programmer, but know how to code and why things are done a certain way in the code. It will help you in your testing effort and later on with automation will allow you to create your own code properly. It will allow you to understand how to hook the application under test and drive it with the test tool.
Find a mentor to learn from. They will help you grow in your position and this line of work. Again, don't re-invent the wheel. You gain knowledge and experience by working with someone who has knowledge and experience.
As you can see from the WebLog title I am a bit sarcastic and cynical about this thing we call Software Testing. Over my years of experience in Software Development and Testing I have seen some very very Dilbert things happen.
Hopefully this Blog will be a good place for you to learn from some of the things I have experienced and allow you to be more effective in your efforts in Software Testing.
• June 21, 2006 - Nature vs. Nurture - Is a good tester born or taught?
I previously talked about a person's 'innate curiosity' and 'inquisitive nature', and how this trait lends itself to being in the QA/Testing field. In response to this post I got a comment along the lines of "is this capability of a tester innate or learned?" Which my response is going to be a non-committal 'well... yes and no'.
Yes, it can be learned to a degree. There are different lines of thought process that can be taught that relate to the tasks involved in testing work. We experience this all the way through school in classes on Mathematics (Proof Theorums), hard sciences (Chemistry, Physics), Psychology, and Philosophy (Logic and Critical Thinking). We learn how to 'pick apart' a system (be it biological or non-biological) and prove whether it works or not, why so, and how. That is why I have met a lot of test professionals with non-CS degree's like Biology, Chemistry, Physics, Philosophy, and Psychology. They were taught to be thinkers and researchers. The skills were taught in these types of disciplines, thus it was a nurture type of situation.
Now... No it can't all be learned. There has to be some innate mindset that needs to be present. Personality characteristics are what help drive a person to go towards the disciplines that teach the additional skills and help refine them. Speaking for myself I was always a curious child, I got into things (and a lot of trouble) and always enjoyed pulling things apart to see how they work (my fathers favorite lawnmower was a victim of this curiosity; got it apart alright, just couldn't get it back together correctly again ;-) ). Also, I have a degree in Zoology and got into computers out of interest (and economic need). I was always more interested in the analytical/mathematical side of the discipline (genetics, population biology, epidemiology) and didn't like the classification stuff (what is the difference between a bufo woodhousi and a rana pipiens, there both frogs and who cares). So there was a 'natural' ability present in me. When I first got into the software industry I was a programmer, doing a lot of maintenance work. I debugged/tested and fixed other peoples code, and I naturally moved into the formal testing field quickly when an opportunity arose (I liked it more, and at the time saw it as a career move that would be a better fit for me). Now I still like programming, I do a lot of automation work (functional and load/performance). But I do it in combination with my overall work focus. It is in my nature.
Now I know people will argue this, and I expect it. Does it make me a better tester? In my opinion it does because this line of work can be stressful and tedious, and it takes a certain personality and characteristics to be able to do it effectively. I have met other 'testers' who didn't last long because they only learned the craft and didn't have a built in drive for it. That has been my experience so far.
So is a good tester born or taught? They are born (nature) and they are taught (nurture), which is the key factor. As with anyone we all have natural talents, and it is how those talents are developed (through education) that define our capabilities. As the saying goes "brains only gets you so far, the rest is hard work!"