Tuesday, May 10, 2011

Stereotypes

As a professional "tester" I often find myself thinking about the stereotypes we set up around testing. For example:

* Anybody can be a tester
* A tester is someone who couldn't cut being a software developer
* Developers are more valuable than testers
* Testing is the first step towards being a real developer
* We can always think about testing later

I hear these phrases more often than I should admit. While there is some truth or common bias in each of these statements (I.E. anyone can be a tester, but very few can be good at it), there are some misconceptions that I think should be understood.

When I am interviewing, I frequently get asked why I switched to testing. "Isn't that the opposite direction of what most software engineers do?" they ask. Yes, it is the opposite direction of what most developers I know have done. Many start as testers as a first step and then move into development. But when I ask my friends who have gone from testing to development why they do, the answer is usually one of a few things: 1) I don't get to write much code as a tester, 2) there is more prestige (or some similar work) in developing, or 3) I don't like testing.

The first point happens often enough. Many of the testing roles out there are manual testers. This is an important role in software development, but it is a role I don't enjoy. I would have a very difficult time doing manual testing all day. But it isn't the only kind of testing. I love to work with automation testing. When I am helping with a project, most of my time is spent in coding. So if you don't write enough code as a tester, talk to you manager and fix it, or find another role. Note, development (aka, the Dark Side) shouldn't be your only recourse...

The second point is true in some companies, but not in all. As I have interviewed in the past, I have found that many of the bigger technology companies (Microsoft, Google, Adobe to name a few) have changed. Developers in test (often called SDET's, SET's, or some other acronym) are on the same pay scale as other developers. If you find yourself in a company where there is a view that the developers are more important, you might be in a great position to help change the tide. Either that, or find a company that already values your skill set.

For the third point, when someone says that they don't like testing, are they saying they don't like testing in their current company because of problems like those in point 2, or are they saying this because they truly don't like finding bugs? If the former, refer to my comments around point 2. If the later, development might be where you should be. There is a different mindset needed to be a successful tester versus a successful developer. However, I will save the mindset discussion for a future post.

I was a developer and switched because I was bored of developing. I felt too pigeon holed with backwards compatibility issues, or technology constraints. I found that, to me, I had more freedom as a tester. Not to mention, the puzzles of testing where (and still are) fascinating to me. So testing was the right fit.

Software testing and software development are both highly skilled fields that require practice and education. The main difference between the two is simply how they each fit in the software development lifecycle and what they focus on during the different stages.

If you are trying to become a developer, hopefully it is because you truly don't like testing, and I can totally respect that. I might not understand, but I can respect that. So if you are looking to get out of testing, do it for the right reasons. Too many people have left the testing side for the greener pastures in development, but because they are testers at heart, they get bored and will not excel like they could have otherwise.

No comments:

Post a Comment