If a tool existed that could output a contract from design tools, we could automate everything from design to testing. In this sense, Design by Contract fits well into our vision of a fully-automated development process. There are already CASE tools available that can automate implementation by generating code. Although these tools have understandable limitations, we expect them to improve just as any technology improves with research. The testing phase, though vital to overall software quality, thus contains no intelligence creation because the intelligence needed to test is already in the code.
Automatic tools can enforce coding standards, perform unit testing, and detect run-time errors.
They can also generate inputs to perform white-box testing. However, Design by Contract should be able to automate any functionality testing for developers who truly understand the functionality of their application and can write about it in their contract. For all of these reasons, Design by Contract is an appealing technique. Its benefits apply directly to what our developers are doing now, but it is also a vehicle by which we will soon be able to automate an even greater portion of the software development cycle.