Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm interested in the prospect of spending a few years as a tester: it seems like two or three years as a tester in anyone's CV is a big gain.

Are there any skills you can get as a software tester which you can't (or certainly won't) get as a developer? Is there a way back from software testing to development or do most companies prefer "pure" developers?

share|improve this question
1  
Not necessarily, but a week of being a developer, fixing bugs according to bug reports will definitely improve your bug report quality as a tester... –  SF. Jul 12 '11 at 9:25
add comment

5 Answers 5

When I went back to school to get my degrees, I studied with someone who worked in the military-industrial complex, in a quality-assurance role. Think: making sure the software in a jet fighter works reliably, without destroying the aircraft and killing the pilot.

He was well-versed in C++, but after our first Java programming class he made the point that, though there are similarities, doing software QA requires a completely different skill set  than writing software. This is not hard to imagine, given that the QA person has a different goal than the developer: the developer wants to make it work, the QA person wants to make it break.

I would imagine that, once he learned how to write software, that his QA skills would greatly assist him in writing better, more reliable software, since he's been on both sides of the fence.

share|improve this answer
    
I like the anecdote about the military QA guy –  Carson Myers Jul 12 '11 at 8:19
    
During my time in QA (and writing unit tests now), I didn't want to make it break, rather prove it doesn't. –  StuperUser Jul 12 '11 at 9:57
    
@Stuper: Sure, but to (attempt to) prove it doesn't, you have to see if it does. –  Robert Harvey Jul 12 '11 at 14:40
    
@Robert Harvey Exactly. When you can't prove a == true, you prove !a == false, (where a is "the system doesn't break"). –  StuperUser Jul 12 '11 at 14:45
add comment

Don't let your job define who you are and what you can do.

It's fine and dandy to plan for the future, but don't let yourself be pigeonholed by your job position. If you are worried that you cannot get back into software development, then do whatever is necessary to ensure you maintain your skills regardless of what position you are fulfilling.

Remember: software testing and software development can vary vastly. There are many jobs out there where these two would somewhat overlap. However, X years as a software developer is always going to look better, on paper, than X years as a software tester.

share|improve this answer
1  
However, X years as a software developer is always going to look better, on paper, than X years as a software tester. Wrong. While it's true that working as a developer will give you more experience as a developer, not all jobs require solely developer experience. If QA is part of the responsibility of a Development Director, which is often can be, this experience could be favourable by someone hiring for that role. –  StuperUser Jul 12 '11 at 12:10
    
What if, as a software tester, you spend almost all your time writing scripts to test code? That is actually a pretty challenging field of software development. The point being, I don't think you can say that it is always true that dev experience looks better than testing experience. –  Bryan Oakley Dec 15 '11 at 14:00
add comment

I did a year in QA and would recommend it to anyone.

(There is a difference between QA and testing, but I will use the terms interchangeably.)

Pros:

  • You write more robust code as you have more knowledge of edge cases and techniques to write test cases (BVA, decision tables etc.) and have experience of exploratory testing.
  • Your code will likely not contain straight-forward defects, so you will get to work on interesting, complex defects and gain deeper knowledge quickly.
  • You will learnt how to read specification documents to get requirements for test cases, which will be useful in development.
  • You work well with QA, some developers can be quite adversarial.
  • With a wider knowledge of the PDLC you appreciate how the project will progress and work better with PM, QA and other developers.
  • You will learn patience to carry out with unpleasant tasks - manual test case executing can be somewhat soul destroying - and a desire to automate simple tasks.

Cons:

  • You will probably take longer to produce deliverables than developers that are more pragmatic and are used to simply getting things done.
  • As you have moved from QA to Development, you may feel as though Development is a better or more important job that development. While a developer can deliver an application without QA/testers, the attitude some developers take towards QA can be quite egregious. This answer has some good examples: Are testing guys considered low profilers ?
  • You may be more likely to criticise (productively) other developers' code before it's released, which can, unfortunately, cause friction.
  • You have less experience developing than someone who spent that time developing rather than testing.
  • You will likely get paid less, since QA are paid less than development for various reasons. If you move from QA to Development you will not likely get much of a raise for various political reasons, unless you move to another company in a position as a developer.

However: Test analysis (the process of reading and understanding specifications to write test cases that cover them) is better suited to the character of someone who makes a good developer.
Testing (executing manual test cases) will bring someone with that character to tears.

You can't always do the good parts of a job and can't expect to do purely test analysis because you want to be a developer.

share|improve this answer
add comment

It really depends on what the roles of developer and tester are in your company.

IMO, a tester should be doing nothing that a competent developer hasn't already done, which really makes them a "verifier" that the software works like it should. This is especially true in a waterfall environment.

In an agile/iterative environment, especially one practicing test-driven development (TDD), then the tester plays the verifier role, along with helping with test automation, thinking up test scenarios along with the devs, knowing all the outskirts of the system, and looking at the software like a user and business analyst/product manager. Additionally, they would drive efforts to root cause every single bug and help the team think of ways to never produce a bug like that again.

All of these skills you can get as a dev (and imo you need as a dev), but you don't focus some of them as much, particularly the thinking like the user and BA/PM.

One main difference in mentality is that devs tend to focus on solving a problem with given variables, whereas testers tend to think about how many permutations of the variables you can have. When practicing TDD, the dev is forced to think about that as well, removing the need for that portion of the tester's job (usually). However, that frees up the tester to be a user advocate and identify systemic problems with process, which is a very valuable skillset to have imo. The PM focuses on getting features out of the door, the devs on coding those features to full quality, and the tester on making sure each feature and microdecision makes sense in the bigger scope of things.

In summary, it's not whether your title was "tester" or "dev" it's what you did in those roles that you need on your resume, and those roles vary based on the company/team.

share|improve this answer
    
+1, this is a superb answer! –  maple_shaft Jul 12 '11 at 1:18
add comment

Are there any skills you can get as a software tester which you can't (or certainly won't) get as a developer?

With test driven development programmers also have to start thinking on all the ways in which their software can break. Overall I'd say that a programmer can do most things a tester can but usually not vice versa.

Is there a way back from software testing to development or does HR prefer pure devs for development?

This depends on your company. We had one tester here who became a programmer this year. He got some experience at home and by creating programs that helped the testers with their daily tasks.

I have to add that quite a few of our testers did the reverse thing: they were programmers. But after a few years they decided that it wasn't for them and are now professional testers.

Are there any financial or career-wise benefits or disadvantages when comparing income or job opportunities?

Developers are usually harder to find than testers. As such they get paid more and will have an easier time finding a job.

share|improve this answer
1  
"Developers are usually harder to find than testers" - not true for testers who can develop, e.g., test tools, at least in some areas. I ended up sticking w/ SDET because of the greater job stability. –  Ethel Evans Jul 12 '11 at 21:19
1  
That's why I added the usually :) –  Carra Jul 13 '11 at 11:01
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.