&gt; &gt; But testing ensures no such thing<p>&gt; Yes it does. Empirically.<p>Your claim was &quot;Testing ensures that the knowledge is checked.&quot;  And, yes, testing ensures that the knowledge is checked - by the test.<p>mrbrowning&#x27;s claim is that &quot;Static typing ensures that some sliver of that knowledge is explicit and checked.&quot;  That&#x27;s also true (despite your reply of &quot;No&quot;).  And note mrbrowning&#x27;s use of the word &quot;explicit&quot;.  Type knowledge is more explicit than a test.  It ensures that this data structure is an instance of the specified type.  A test proves that <i>in this set of circumstances</i> this data structure behaves the way we expect, which is a weaker proof.