dsimcha wrote:
My biggest gripe about static verification is that it can't help you at all with high-level logic/algorithmic errors, only lower level coding errors. Good unit tests (and good asserts), on the other hand, are invaluable for finding and debugging high-level logic and algorithmic errors.
Unit tests have their limitations as well. Unit tests cannot prove a function is pure, for example.
Both unit tests and static verification are needed.