Is D still alive?

spir denis.spir at gmail.com
Fri Jan 28 04:30:51 PST 2011


On 01/28/2011 12:36 PM, bearophile wrote:

> I think the problem here is that you are not using your D tools well enough yet:
> - Preconditions allow you to save some tests in your unittests, because you have less need to test many input boundary conditions.
> - Postconditions are useful to save some code to test the correctness of the results inside your unittests. You still need to put many tricky but correct input conditions inside your unittests, but then the postcondition will test that the outputs are inside the class of the correct outputs, and you will need less unittest code to test that the results are exactly the expected ones in some important situations.

Very intersting points, thank you.

> - The missing "old" feature once somehow implemented allows to remove some other unittests, because you don't need a unittest any more to test the output is generally correct given a certain class of input.

What is this "old" feature?


> Generally with unittesting you can't be sure to have covered all interesting input-output cases (code coverage tools here help but don't solve the problem. Fuzzytesting tools are able to cover other cases), while with DbC you can't be sure your general rules about correct inputs, correct outputs (or even general rules about what a correct input-output pair is) are accurate enough to catch all bad situations and computations.
>
> So generally DbC and unittests are better for different purposes, using them both you are able to complement each other weak points, and to improve your D coding.

Ditto.
I definitely need a "mental jump" to think in terms of DbC; nearly never use 
it, simply don't think at it.

> I also suggest to try to write contracts first and code later, sometimes it helps.

Just what I sometimes do for tests ;-)

Denis
-- 
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d mailing list