Developers looking for a change of pace might like to consider turning their hand to software testing. As testers, they’ll still get plenty of opportunity for writing code, but with some detective work thrown in.
John Richards leads eight testers in the qualification group at Christchurch development house Jade Software. But Richards is comparatively unusual in that he became a tester after 30 years in database administration and software development roles. In his experience — which began in the UK — the more common career progression is the other way round.
“If I look at my current group, there are probably three of us who have come into testing from development and all the others would have started their computing careers as testers,” Richard says.
“I personally believe — and a lot of people don’t agree with me — that they’re very similar disciplines. Very often a really good tester will make a good developer, and vice versa. And if a person is not a very good developer they’ll probably not make a very good tester.”
Richards says the coding testers do as they write routines to put new software through its paces can be demanding.
“When we’re writing new tests there’s a high degree of coding going on, and quite sophisticated code as well. So the tester — or qualification person — needs to be able to write good code, and in a way that other people can maintain in the future.
“Of course, what happens is we’ll get a really good testing person and the developers will poach them after a while. It’s just one of those facts of life. We tend to be a bit of a school; so we often get in the scholars from universities and polytechs. They’ll do two or three years with us, get a good grounding and sometimes get poached to other departments.”
The particular discipline testers need to learn is to be systematic, says Richards.
“Testers need to be able to follow a process in a way that developers might not need to. Sometimes a developer needs to have a bit of lateral thinking, a bit of imagination to solve a problem. Testers are less often required to have that imaginative streak.”
But they must follow a process — keeping statistics of test results, for example — so they can give the developers and their masters the confidence necessary to say a new piece of software is ready for commercial release.
The company has just released Jade 6, its object-oriented development environment with integrated database. Richards says the qualifications group has been testing Jade 6 code since shortly after development began two years ago.
“We take responsibility once the developers have put together a release. So when they get to a particular point they will do a cut and give it to us. We run through a series of tests, starting with the basics — which are fairly manual.
“In the early days you need to eye-ball some of the product to make sure human interface-type things are right. From there we move on to a series of automated tests which might only take a few minutes but test a great deal of the product. Once we’ve got to a point where things are looking good we’ll carry on to more and more detail.
“If we find something major it goes back to the developers; they continue working and when they feel they’ve made significant progress they’ll cut another CD and give it to us and away we go again. As we get close to a shipment date they’re just fixing the bugs we’re finding, so not putting any new code in; so we’re gradually reducing the error rate, getting a better quality product. And then we ship.”
As bug fixing proceeds, the testers concentrate on downstream effects of code changes, rather than the freshly written code itself, which the developers themselves have checked.
“Take, for example, the concept in Jade of notifications, whereby an event occurs and other users get notified of it. If the developers change one thing in that area, we might run all our notifications tests to make sure they haven’t adversely affected something else. Our aim is to make sure that what we say the product will do, it continues to do release after release, despite the fact that the developers are continuing to add new features or fix new problems.”
Error acceptability in a shipping product is dependent on severity, Richards says.
Anything that corrupts data is a show-stopper, and when a customer stumbles across on of those, they’ll be provided with a hot fix. The testers will then run tests continuously for several days to make sure the fix hasn’t created a problem elsewhere.
Despite the critical role testers play in producing the finished product, they tend to be paid less than developers, according to Richards. That’s partly because they’re often newcomers to the industry, using testing as a stepping stone to a developer job.
“I’m working hard to get some of the young scholars I have here to see testing as a career. But I also have to change other people’s minds to pay them well.”