Several versions of this question have popped up on Quora. The common thread is: 1) In many software organizations, there’s an informal (or formal) hierarchy, with developers higher up the food chain than testers. 2) In such companies, the best testers aspire to become developers – more status, better pay – and so the test team has to keep breaking in new talent. 3) Why is this?
Well, the way the question is phrased – specifically the use of the word “tester” – points to the answer. Testing is an extremely valuable activity. The individual tester can only do a small amount of testing in a day. While it’s not explicitly said, the word “tester” implies “manual tester,” which is a job that often is quite repetitive.
When someone observes that his or her company doesn’t value testers, what they’re really seeing is an example of people doing a job that ought to be done by automation.
Let’s look at the kinds of activities involved in software testing:
- Test plan design
- Exploratory testing*
- Test case creation & manual execution
- Test case automation
- Measurement & troubleshooting
- Optimization
The person labeled a “tester” does a lot of manual execution, often the same execution every time the code has to be changed.
In contrast, mature organizations see manual test execution as part of the prototyping phase of the actual goal, which is test automation. There may not even be anyone with the title “tester” — you’re more likely to see Software Engineer in Test (SEiT) or Software Developer in Test (SDiT) titles. The SEiT/SDiT builds a complete test infrastructure that sits alongside the product being tested. So the SEiT’s job is actually a development job, not a test job.
Many SEiTs know more about the product domain than the product developers do. SEiTs also have to be experts in how to exercise a product efficiently and effectively. And, large complex software products often require large complex test infrastructure, so the SEiT has to be able to architect, build and maintain a significant software system.
Another way to think about it is in terms of measurement and leverage. In his book Hackers and Painters, Paul Graham wrote that in order to get paid a lot, your work has to deliver results that can be measured, and you have to be able to get a lot of results out of a modest number of hours of effort. A tester can only test one release at a time; an SEiT creates code that tests over and over again, with better speed and repeatability than a tester.
For all these reasons, mature software teams place a very high value (status, salary, etc.) on their SEiTs.
So when someone asks me “why are developers higher status than testers,” my answer is: if you’re asking the question, your organization probably has some maturing to do.
(Disclaimer: eInfochips helps major clients with SEiT initiatives. We believe strongly in the power of automation in software testing. To know more about our SEiT/SDiT initiatives, visit http://biz.einfochips.com/TDZ-Clearing-Your-Test-Automation or drop us an email at marketing@einfochips.com