28 December 2010
What makes code testing worthwile?
On the “automated” in “unit testing”.
In the software engineering community, a lot has already been written and said about the benefits of writing tests along with the “normal” development of software, yet the matter is still widely misunderstood. Most people who hear “testing”, think “unit testing” and what they really mean is “automated unit testing”, where the “automated” part is not any less important then the “unit” part.
As a result of this many programmers, even through they hear about the benefits of testing at every software conference, still look at testing as some kind of chore, where in fact automated tests are so much of a productivity helper that, if they are done correctly, doing work without them will seem much more mundane! It is important to understand that the big benefits of “testing” are in fact the benefits of having as many kinds of tests well automated as it is efficient with relation to the time it takes to automate them.
TDD, BDD and various other specific techniques that are fashionable at the moment, while there is much time devoted to talking about them, are of little use until some fundamental issues aren’t more well understood by every institution, company, manager and programmer willing to improve programming productivity and reduce the number of bugs in their software.