I usually don't write commentary about other peoples blogs, but Cem Kaner had an interesting post a few weeks ago that I wanted to talk about.
The first thing that jumped out at me was this quote:
I think there are a lot of good, diligent, motivated black-box testers who want to learn how to program and how to apply that to their testing. I think that the next generation of testers will have to have programming skills. Test-first might be the way to help some of our generation develop skills that have eluded them.
The first half of this quote summarizes the direction we have taken over the last few years in hiring testers at Microsoft. We want testers with programming skills. More importantly, we want programmers who have had the matematics and other analyitical training that a computer science (or related) degree requires. Many people think that the only reason for testers to know programming is so that they can write more automation. While creating automation is a part of why I think testers should have a CS background, testers with a technical background are also much better at creating test cases, and are also often better at exploratory testing. Testers that understand the system (application, OS, web, etc.) they are testing are able to create better test cases (written and exploratory), and be much less prone to over testing or under testing the system.
Some testers argue that creativity is the key skill that testers need in order to be successful. I woud be the last person in the world to argue that creativity is unimportant, but creativity is extremely important in practically any field of engineering. Of course creative skills are going to make someone a good tester, but a knowledge of computer science will make them a great tester. Do I think testers without a CS degree need to go back to school to get one? No - but they should put some effort into learning programming and related sciences (math, logic, etc.).
The second half of the statement reinforces my thinking about TDD as a test design technique. I think it's the way we should teach everyone to program.
A few paragraphs later, Dr. Kaner has this to say:
The problem is that we need a new generation of software testing architects and we don’t know how to foster them.
This, is exactly the focus of much of my work at Microsoft. We are hiring great testers, and we have a roadmap that shows that testers can be promoted as fast and as far as any other discipline, but there is still much more we can do to show how much MS values great testers. I believe in the roadmap - I was asked a week or two ago if I ever considered working for the 'G' company or a large local online book store - but I don't think either of those companies - or any company in the world for that matter has the career path for testers that MS has. Those of you that know me will know that I am just about the last person to stand up and rah-rah for MS, but I honestly believe that I can grow farther as a tester here than I can anywhere else in the world. Now I just need to convince 7500 testers the same thing.
12:02pm - fixed typo (crow -> grow)