Browse by year:
The Smart Techie was renamed Siliconindia India Edition starting Feb 2012 to continue the nearly two decade track record of excellence of our US edition.

Developers: The new breed of testers

Jeff Fredrick
Thursday, February 1, 2007
Jeff Fredrick
While manufacturing a computer, would one go about developing the motherboard, RAM, power source, display tube et al, assemble them together, and then try running them? In the event of even one of them not working properly, the entire system would falter, and it would take an eternity to find out in which part the problem lay.
Similar is the case of software testing. Though developers have always shied away from testing the code they write, today, with escalating costs, and shrinking cycle-time, there is a pressing need for them to realize testing as an integral part of code writing. True that there is a dedicated QA testing team for finding the bugs, but the questions they will ask about the product is entirely different from the questions a developer will ask of the code. Only the developer will know what he expected the code to do in the first place, so only the developer can say the code is working as expected.

Testing at the developer level, unit-testing in other words, will reduce cycle time because there will not be the inevitable going-through-the-entire-system-to-discover-erring-part conundrum that is characteristic of bugs discovered in the QA phase. I call this the bug dance, where the bug passes from developer to developer as they try to ascertain where the fault lies. Also, if developers do not take that extra effort to test the code they write, as and when they do it, they will probably spend five times that time-span trying to rectify the errors detected by the QA team.

I have often heard developers say why they should test at all, it is someone else’s job and doesn’t help them. Most developers will agree that they hate debugging more than anything else. Unit-testing will ensure the software reaches the QA team with far lesser number of errors, and that would mean less of debugging.
Once developers have understood the importance of unit-testing though, another obstacle pops its head. How do they begin doing it?
The answer is simple: They just have to start doing it. To begin with will be difficult, but the more they do it, the better they will get at sending the software off to QA with lesser errors.

The QA, on its part, can collect metrics on the types of defects particular kinds of software have, the parts where the bugs reside, the characteristics of such bugs, and the cyclomatic complexity level at which the bugs occur. This, when forwarded to the developers will help them ask appropriate questions to the code during the creation phase itself.

Share on Twitter
Share on LinkedIn
Share on facebook