john said:
Hello,
My name is Mr Official and I am hereby asking you to participating in
my poll. "Do you really do unit testing?"
Acceptable answers;
* Janet Jackme does my dishes cos I unit test all of the time
* I only unit test when < insert reason for testing>
In truth, I only unit test after something breaks. I guess I start
doing things thinking "this will only be a one or two line change" and
before I know it, I've added an extra module of code that is largely
based on old code, but just different enough to break it. I also find
that working in Ruby is counter-productive to working up the mental
drive to unit test. This is not me getting all fanatic about ruby (ok,
much) but it's true of other dynamic languages. I grew up on Java and C
and with that, one tends to get bogged down in so much detail trying to
translate behaviour into code, that testing is a nice, high-level view
of your program that validates your design to some degree. In dynamic
languages, things are already pretty high-level and the tendency here is
to believe that writing code correctly every time is about as difficult
as writing english sentences with correct grammar each time. A quick
run through the spell checker (ruby -wc) and everything's done, right?
So yes, it's probably the confidence I get from a dynamic language
_after_ C and the like that lets me believe that I've become a brilliant
coder overnight because I can suddenly parse strings quickly without
worrying about memory leaks, pointers and NUL chars (when I was at
university we had a 10% test dedicated to doing just that!). In short,
the bug minefields I trained to be extra-worried about no longer exist,
so setting up a Unit Test for the 'easy bits' mentally seems like more
effort than it's worth. Until it breaks. Part of solving the problem
is obviously defining the solution, to me, which is exactly where the
test comes!
It might be a slightly contradictory way of looking at things, but it's
certainly honest!
Michael
=======================================================================
This email, including any attachments, is only for the intended
addressee. It is subject to copyright, is confidential and may be
the subject of legal or other privilege, none of which is waived or
lost by reason of this transmission.
If the receiver is not the intended addressee, please accept our
apologies, notify us by return, delete all copies and perform no
other act on the email.
Unfortunately, we cannot warrant that the email has not been
altered or corrupted during transmission.
=======================================================================