views:

142

answers:

4

Do you think a tester should be a great programmer, or someone who just knows how to use computer, with no programming experience required?

+1  A: 

Joel just wrote a blog post on this: http://www.joelonsoftware.com/items/2010/01/26.html

I would say that if you're a great programmer, you're better off programming. For testing, you do need to be intelligent, meticulous and interested in computers, but not a programmer per se.

Wim
yes I read it, and this is why I am writing right now, asking others opinion about it :-)
Omar Al Kababji
+3  A: 

It depends on the exact responsibility in the team. For example for usability testing it is maybe even an advantage when it is a non-technical user, but in most of the cases some technical background always helps.

Thomas Wanner
A: 

You should also read the tales of the IBM Black Team. Interesting approach to software testings.

Am
The book *Peopleware* by DeMarco and Lister has a chapter that describes the Black Team, and how forming such a team can help to strengthen and motivate a team. http://en.wikipedia.org/wiki/Peopleware:_Productive_Projects_and_Teams
seh
+1  A: 

I'll bite. I think that a great tester should be:

  1. A clear communicator. A defect report is no good if we can't understand it.

  2. Patient. Sometimes it takes a lot of back-and-forth to get to the root of a problem. And programmers have egos, they'll often try to push issues back to the tester (I don't condone this behaviour, but it happens nevertheless).

  3. Passionate. The best developers are the ones that really care about development and maybe even get a little excited about it sometimes. Testing isn't that much different. Read a few posts from James Bach or Michael Bolton and you'll see that there are passionate testers out there, however implausible that may sound to us developers.

  4. Creative. Really exercising a system requires one to try non-intuitive ways of accomplishing tasks, to go outside the workflow that the program expects of them and do things that normal users wouldn't do. Task-oriented people who receive a set of instructions and do the exact same thing every time are no good for this job.

  5. Analytical. Just finding a defect isn't enough - a tester has to be able to figure out how to reproduce it. If a report comes in as "intermittent" then there's about a 10% chance it'll get solved. Most developers won't even look at a case without a reasonably concise sequence of repro steps. Good testers have to be able to retrace their steps and narrow down the field of possibilities so as to come up with the simplest possible sequence of actions that trigger a bug.

  6. Not a programmer. Programmers never want to do any actual work testing. They'll spend all their time trying to write automated tests and not do what really matters, which is to make sure the damn thing actually works the way it is supposed to. Although there are exceptions to every rule, most programmers simply find testing boring and will do the absolute minimum amount required.

I'm sorry if you were hoping for a laundry list of required certifications and automated test tools that testers should be proficient in; sorry, I don't believe in that for testers any more than I do for programmers.

Does a tester need to have actual programming experience? Absolutely not! The last thing you really want your testers wasting time on is trying to work out the exact technical cause of some defect, or God forbid, trudging through actual source code; their job is to find the defects, not to fix them.

Aaronaught
-1 for playing automated tests against manual tests. Both are important.
Dave Sims
@Dave Sims: Automated tests are important *for developers*, not testers. If a test can be automated then you don't need a tester at all.
Aaronaught
@Aaronaught - automated tests are absolutely important for testers as well as developers. In most software shops, the developers' task is to unit test their own code and possibly its integration with other components, while testers are responsible for exercising the entire system. There are very few systems around these days where you could get adequate coverage with 100% manual testing.
gareth_bowles