Can't We Just Get a Coder to Test?
Photo by Jefferson Santos
A lot has been said about the difference in mindset between programmers and testers. In summary, testers who write code do about as good a job as programmers who test. Neither are very good at the others’ job. That’s why we have different roles to begin with. There are very few people who can do both well, and they are CTO of their own company before they’re 28, not someone you can hire to do test automation for all the coffee and pizza in the world.
But test automation is inherently both of those things, creating tests in code.
If we make a programmer do it, the automation will run well, but will execute poor tests with low value and holes in the coverage, because it wasn’t built by a professional tester.
If we make a tester do it, we’ll have great tests, poorly executed, making each failure a diagnosis symposium, to understand if the problem is in the test code or the product code.
There is a third way, which I have seen suggested many times as the obvious solution, pair programming of the automated tests. In this case, you have a professional tester creating the tests and a professional programmer coding them. Of course, now you’re paying twice as much, which is why we have only ever heard of this, but never see it in the wild.
My preferred solution, of course, is not to assume that we must create tests in code. We’re not in the 20th century anymore. There are modern, late-generation automation frameworks we can use. They are varied, can keep the test actions and test data separate for ease of use, have reusability built in, can work across different platforms in a single test and produce useful reports to show their results. It also helps reduce the testers’ dependence on programmers, and the programmers’ frustrations at writing test code, which is no fun.
They don’t come cheap. The best cost about a tenth of a programmer per license. That’s much, much cheaper than pairing a whole programmer to the tester, though. It also leads to happier teams.
Need help creating and optimizing an efficient and talented QA team? We're here to help.