For more information on DbC, check out the Eiffel Webpages . The idea that testing is better than type checking doesn't match my experience. The general observation, which you will find strongly backed in the software engineering literature, is that it is not just better to find errors early, it is much better. The cost of correcting an error found late may be hundreds of times greater than the cost of correcting it early. I agree with the general observation that shorter code is better.
Concision is a great virtue.
A typical example is the move to a table-driven scheme from one that has everything programmed in the code. Adding type information doesn't take much extra time, or result in much extra code. Type information also improves readability and, hence, ease of maintenance, reuse, and modification. Type declarations make the text so much more clear. I don't see why anyone would want to renounce its benefits.