This isn’t really a question for which there are two responses. In the current era of easy automation toolhahahahaha, okay, you got me, I lied, but anyway… In the current era of tools that provide easy access to basic automation, testers can’t really afford to not be anything other than technical testers. The reason is simple: If your job can be done by a script and it isn’t already being done by a script, you can bet it soon will be.
Unfortunately, I keep running in to testers (both at work and online) who have done nothing more than test web based applications for the last x years and don’t understand the first thing about what lies under the hood. Of anything.
I’ll put it in simple terms: If you aren’t technical, your shelf life is limited to about 5 years. Your career will not advance if you don’t educate and challenge yourself.
My current rant stems from a couple of posts on LinkedIn, one recent, the other not so much. The more recent one asked:
What are the “good to have” technical skills for a tester?
I replied with a quick list of skills I’ve developed over the years and found useful:
- Basic coding knowledge and principles
- Network architecture and transmission stack
- Good understanding of
- physical hardware
- database structure
- basic and intermediate SQL queries
- Multiple protocols
- Good working knowledge of the linux command line
- Some degree of knowledge about security testing and basic attacks
- Knowkedge of a good variety of testing tools and more importantly why you’d use them and where (not just QTP or JMeter but tools like traffic analysers)
- General OS knowledge, including how to utilise virtual environments for your testing
These are on top of general testing skills in specific domains (both functional and non-functional) and the tools that go along with them. Obviously I’m not counting the non-technical skills that also play a oart in being a well rounded tester. Another response covered this with a partial list:
- Project management skills
- Systems theory, testing theory, test methodology
- Communication skills
- Critical thinking and reasoning skills
- Scientific, creative and investigative type skills
There are no doubt more to add to both lists. If you can come up with more, please feel free to add them in the comments.
The latter source of my rant was a post some time ago in one of the performance testing groups. Someone without much of a clue on what’s inolved wrote:
We are about to start teaching “Performance testing” to a bunch of freshers. By default we cover LoadRunner(Scripting and Execution). What else can be covered to ensure that they don’t fall in the trap of ‘Performance Scripting’ only? Remember that the target audience are fresh engineering college grads (IT and non IT)
There are so many things wrong with this I don’t know where to start. Fortunately there are brighter minds than I, one such being James Pulley (from PerfBytes; he’s also the CTO of NewCOE) who responded with the following:
You should not expect to spend any less time becoming a performance tester than you would a plumber, an electrician, a barber or a cosmetologist. In my state it takes around 1800 hours of combined training and internship to become a cosmetologist, so let’s use that figure as a starting point.
Since you will have a set of team members whose fundamentals are in question and all over the map in terms of maturity, spend the first 600 hours concentrating on those core foundation skills which are completely independent of performance testing: Programming in the language(s) of your tools, application architecture, operating system architecture and implementation, database fundamentials, networking, systems analysis, requirements management, project management, testing concepts (independent of software testing and/or performance testing), the scientific method, etc,….
Now that you have brought everyone to a common foundation level you can begin introducing process and theory around performance testing. Begin with the process items of planning and analysis, reinforcing the foundation skills covered earlier. Continue with the tools. Begin with JMETER, a pretty basic tool, to ground the concepts and then move to more sophisticated commercial tools. If you have not paid for a training license for the commercial tools then do not use them at all. Assume that this will consume the next 600 hours of time.
Then it comes to a time to bring together all of the foundation skills, the new skills, the tool skills, etc,,, into a cohesive whole. if you simply hand the person a briefcase and parachute and send them off to a gig then they will fail. They should spend the next 600 hours (at least, if not significantly longer) under the internship of a master in the profession. You should have defined goal posts in terms of professional development before people can move on within the internship or exit from it. Failure to hit a goalpost either sends you back to training, or into a different profession after a period of time and retry.
I thought it was a great response and helps to highlight one of the root problems I see with so many questions on the LinkedIn testing forums. There’s the assumption inbuilt that skill with a tool is the panacea to one’s career problems, the ticket out of doing manual testing. It’s not. Without a thorough understanding of the theory behind these tools all you’ll ever be is just another button presser. Is that what you really want?