Background.

For a long time I've been writing unit tests with my code.
I have a reputation among of friends of writing meticulous
code and of meticulously testing it. I have been so determined 
to not release code until it was well tested, that at times I have
suffered professionally from it.

In all that time, I have never once been able to produce a system
of tests that meets three criteria: the tests run automatically, the
tests are comprehensive, and the tests are easily maintainable.
At this point I am strongly beginning to wonder whether such a
system is possible.

So I offered a challenge to those that support heavy unit testing.
In particular to the XP community. Produce a "proof-of-concept"
for unit testing by taking some open source project and adding unit
tests. I also suggested that if the person needed to he could rewrite
the project to facilitate testing.  ( Let me say that this also can be
loosely interpreted to include writing an open source project. Some
advocates say that the only way to implement a unit test system is to
write it before you write the code. )


On Fri, 30 Nov 2001 20:06:09 -0800, "John Roth"
<johnroth / ameritech.net> wrote:

>
>"Tom Adams" <TADAMSMAR / AOL.COM> wrote in message
>news:708f3b7f.0111301318.2a499dd3 / posting.google.com...
>> Comprehensive unit testing is not practical.  It was shown decades
>> ago that comprehensive unit testing is equivalent to correctness
>> proof of the program being tested.  Therefore it is no more
>> practical than correctness proof for large programs.
>>
>> Where you guys been? See "Partition testing does not inspire
>> confidence" by Dick Hamlet.  I'll go home tonight at dig up
>> the old references if you like.
>
>I think I've come to the conclusion that the original post on
>this thread was a troll, so I've snipped it.
A troll is supposed to generate a lot of responses.
The original question generated more than 250 responses.
However less than 10 of the responses directly tackled the question.
Until Tom Adams posted his reply there were less then 5.
Many of the rest had no relevance to the original post.

Thus there is no way that I can take credit for the volume of posts.
Nor do I want  a lot of posts. I prefer quality over quantity. Still
waters run deep, but then I don't expect you to understand what that
means. You just don't have the intelligence to understand it.

Of all the posts only two actually tried to meet my challenge.
( I'm still evaluating them, and forming my questions. ) Kent Beck's
post, which suggested  I look at ant and junit, and Max Ischenko who
suggested ruby. ( Which is why I added comp.lang.ruby. I believe in
giving credit where credit is due. All you "rubiers" who aren't
interested in the rest can go, that was the whole relationship to
ruby. ) 

You on the other have done just the opposite. Instead of proactively
rising to meet the challenge, you chose instead to denigrate me. Now
you call the challenge a troll. That was one post requesting that
XPers ( and others who believe in unit testing ) offer a
"proof-of-concept" versus a flood of off-topic ( relative to thread )
posts from XPers.  230 to 1 and the 1 is the one wasting bandwidth.
You've got a lot of balls to even suggest it, and a lot of stupidity
to think you wouldn't get called for it. 

More amazing is the fact that you ( perhaps in conjunction with others
) don't jump at the chance to create a  "proof-of-concept".  Such a
thing would be invaluable ( if done correctly )  to hold up to
managers and senior developers to convince them to do unit testing.

Something which BTW I am surprised you would find objectionable,
since it is something that you could hold up to managers as proof of
unit testing. People supporting the less popular programming languages
beg for precisely such a proof  for their languages.

I suspect the reason is that you cannot do it. That you really
don't have the development skills to do it for yourself and 
instead go into a company and sell the latest religion disguised as
methodology to the management. You don't pay attention when 
the developers tell you something is impossible, instead blame them
when things turn out wrong. As you PJPlauger once put it, your
wonderful method should have work, but the programmers just
didn't try hard enough or were using the method wrong etc.

>
>Nobody does "comprehensive unit tests" of the type mentioned,
>for the simple reason that the number of tests vastly outweighs
>any possible benefit, even if it was possible to characterize
>the actual tests required, which in most cases of any practical
>interest, it isn't.
>
"You should test things that might break."
eXtreme Programming eXplained: Embrace Change
Kent Beck

You are now running away from that statement by saying it
does not pay to do that ( after all what does comprehensive mean? )

As for the rest. Well I one made one mistake. A long time ago I swore 
that I would reply to the intelligent posts first then the stupid
ones. Your post upset me enough that I violated that rule. I will now
go back to make my detailed analysis of junit as a response to Kent
Beck's post.

When I said "consultants that give consultants a bad name" in my
original post, you said the phrase was nonsensical. Well let me
explain  what I meant ( it's obvious to those with an IQ ). Most of
the SD managers and senior people I speak to associate certain words
with consultants "liar", "incompetent", and "con-man" are just a few.
One manager once said to me "We need someone with OLE experience.
This guy claims to be one of the best OLE developers around. Even
though all consultants lie, I expect this one has enough experience 
to meet our needs. Even though I know he's lying." Other managers have
said similar things. This comes not from some sort of prejudice, but
from previous experience of these managers. I doubt, however, that you
want to admit such a thing exists because it would make looking in the
mirror hard.

In conclusion. I was so serious about this question that I removed
people from my kill file to get their responses. For the most part
that was a mistake because these people don't seem serious about
wanting to prove unit testing is good. Instead they want to spend
their time dancing around the maypole and sending 230 chants...that
is... irrelevant posts trying to get more converts to their cult.

So...
<plonk>
There is nothing that I can learn from you except that you are an
asshole. I already know that so there is really nothing that I can
learn from you. 

I expect that you will say nasty things being the person that you are,
but I hope people take into consideration that they are being said
behind my back.

Sorry, your just too stupid for me to learn anything from you.
Goodbye.
</plonk>