I’ve often asked myself this question.
I started my IT career as a programmer, developing all kinds of commercial software, including accounting, stock control, content management, and customer service centre systems – the list goes on.
I still love getting my hands in code. I’m learning Ruby right now, and would like to start dabbling in iPhone development – to bring my coding skills right up to date.
So does having a programming background make me a better tester?
An understanding tester
Knowing what it feels like to be a developer when a tester sidles up to you with a sheaf of papers really helps me see things from the point of view of the developer.
One thing I always try to bear in mind is the fact that on waterfall projects, I might be about to ask a question about code the developer wrote a few months ago, before the project was handed over to the testing team.
Testers who haven’t been involved in programming can very easily lose sight of this, and become frustrated when the developer doesn’t immediately know what they’re talking about.
An analytical tester
Having a deep understanding of how software is written helps me track down defects. I can spot ‘sticky patches’ in business requirements and specifications that I recognise would attract bugs.
Also, when analysing the symptoms of a potential bug, providing I have enough information about the code, I can often suggest to the developer where the problem might lie. This usually goes down well, resulting in lots of kudos if I’m correct.
A tester to be trusted
One of the best things about having a strong background in software development is that it helps me gain the trust of developers when I approach them with a problem.
It’s traditional for developers to fob testers off with a standard excuse, but if I can demonstrate I’m sympathetic to their position, have analysed the problem, and can make some suggestions about where I think an issue may lie, chances are I’m going to gain some trust and respect fairly quickly.
This is usually amplified when the developer learns about my past, and we share a few nostalgic stories!
So to answer my original question: yes, I firmly believe a background as a software developer can make someone a better tester.
(But it’s not a pre-requisite to being one.)