Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> comp.databases.theory -> Re: Testing relational databases

Re: Testing relational databases

From: Bob Badour <>
Date: Mon, 10 Jul 2006 02:45:24 GMT
Message-ID: <8bjsg.8540$>

Phlip wrote:

> Bob Badour wrote:

>>>Cite some of his idiocy here, so we may examine it, please.
>>I already did. Next time pay more attention.


> That's by Fabian, not Scott.

Indeed. And Fabian did a very good job of substantively debunking the idiot. Why should I have to repeat a task that's already complete?

>>I won't repeat myself again:

> Good!
> That site is unreadable nonsense.

I read it. It made tremendous sense. Others read it and made sense of it too. The only people I have encountered who reached the same conclusion as you were demonstrably stupid. Sadly, I have to conclude the same of you.

  It begins with the kind of endless
> /argumentum ad hominem/ that instantly tell me the author is not serious.

Apparently, you are too stupid to comprehend the difference between an insult and an ad hominem argument. Fabian concludes Ambler is an idiot because his writing is worthless as Fabian has demonstrated quite clearly. Ambler has proved himself utterly incompetent to respond to substantive argument.

>>How does the idiot Ambler address the observations Dijkstra made 37 years 
>>ago regarding the futility of relying on unit tests? See for instance, 
>>Has the idiot demonstrated the least bit of awareness of Dijkstra's 
>>argument? Or does Ambler's writing suggest a more blissful condition?

> Thanks for quoting Dijkstra - I'm sure the flames will be more clever and
> subtle now.
> "Program testing can be used to show the presence of bugs, but never to show
> their absence!"
> We /rely/ on this argument. Tests never have and never will prove the
> absense of bugs. However, the earlier you write them, the closer to
> development, then the more your entire process resists bugs. This is not
> very difficult to understand.

Doesn't it strike you as stupid to expend energy on tests that one could more productively expend on proofs?

> The goal is code designed for testing, so that tests and clean code,
> together, can inhibit bugs. So if you design BY testing, then you are in the
> best position to possibly discover the remaining few.

That in no way causes the probability of correctness to approach unity with the certainty required to overcome P^N when N is large. For example, a probability of 90% correct for each of 100 units gives a probability of only 0.0027% correct for the resulting system. A probability of 99% correct for each of 100 units gives a probability of only 37% correct for the resulting system.

As the system grows larger, the certainty required approaches even closer to unity. For 1000 modules, even if one achieves a 99.9% certainty of correctness for each unit, the system has only a 37% chance of correctness.

Consider too that an evolving system that puts only 20 or 30 modules into production at a time might have 1000 modules over its lifespan as different versions of those modules get released into production at different times.

Do you honestly think anyone will achieve better than say a 95% confidence based on unit tests? A 95% confidence per unit in a 10 unit system gives only a 60% chance of a correct system. Up that to 20 units and the chance drops to only 36%. Increase it to 40 units and the chance drops to 13%.

Following Amblers advice means expending considerable effort on tests to achieve an almost certainly buggy system. Following Dijkstra's advice means expending a similar effort on proofs to achieve a probably correct system.

> A smart person, carefully reading my last paragraph, will notice that I did
> not say, "unit tests prevent all bugs". Everyone knows this, and pretending
> we don't is a poor tactic.

A smart person, carefully reading Dijkstra's essay, will notice that unit tests are futile regardless of how soon one writes them. Plonk. Received on Sun Jul 09 2006 - 21:45:24 CDT

Original text of this message